title: Should Deserializing a List<> from .Net 2 work in .Net 4?
body: <p>I am getting the following error when making a remoting call from a .Net 4 Application to a .Net 2 Application.</p>
  
  <blockquote>
    <p>Unable to load type
    System.Collections.Generic.List`1[[MyNamespace.MyClass,
    MyAssembly, Version=1.0.0.0, Culture=neutral,
    PublicKeyToken=null]] required for deserialization.</p>
  </blockquote>
  
  <p>Does anyone know if this could be caused because <code>List&lt;T&gt;</code> is different in .Net 2 and .Net 4?</p>
  
  <p>Also, <code>MyClass</code> has 3 <code>string</code> and 3 <code>DateTime</code> properties and is marked as <code>[Serializable]</code> but does not implement <code>ISerializable</code></p>
  
  <p>Here's the Stack Trace:</p>
  
  <blockquote>
    <p>Server stack trace:<br>
    at System.Runtime.Serialization.ObjectManager.CompleteObject(ObjectHolder holder, Boolean bObjectFullyComplete)<br>
    at System.Runtime.Serialization.ObjectManager.DoNewlyRegisteredObjectFixups(ObjectHolder holder)<br>
    at System.Runtime.Serialization.ObjectManager.RegisterObject(Object obj, Int64 objectID, SerializationInfo info, Int64 idOfContainingObj, MemberInfo member, Int32[] arrayIndex)<br>
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.RegisterObject(Object obj, ParseRecord pr, ParseRecord objectPr, Boolean bIsString)<br>
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObjectEnd(ParseRecord pr)<br>
    at System.Runtime.Serialization.Formatters.Binary.__BinaryParser.Run()<br>
    at System.Runtime.Serialization.Formatters.Binary.ObjectReader.Deserialize(HeaderHandler handler, __BinaryParser serParser, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)<br>
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, Boolean isCrossAppDomain, IMethodCallMessage methodCallMessage)<br>
    at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Deserialize(Stream serializationStream, HeaderHandler handler, Boolean fCheck, IMethodCallMessage methodCallMessage)<br>
    at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)  Exception rethrown
    at [0]:<br>
    at System.Activities.Statements.Throw.Execute(CodeActivityContext context)<br>
    at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)<br>
    at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)</p>
  </blockquote>