Eine meiner [DataContract] -Klassen enthält ein [DataMember], das eine Liste ist. BaseClass hat ein paar verschiedene Unterklassen.WCF - Unterklasse zu einer [DataMember] -Liste hinzugefügt <BaseClass> verursacht Ausnahme
Wenn diese Liste Instanzen einer Unterklasse enthält, tritt während/nach der Rückkehr des Dienstes zum Anforderungskanal eine Ausnahme auf. Wenn die Liste keine Unterklassen enthält, funktioniert es gut. Hier
ist ein Beispiel für meinen Code (die selbst nicht funktioniert):
public class BaseClass
{
}
public class BaseClassSub : BaseClass
{
}
[DataContract]
public class MyClass
{
List<BaseClass> m_Classes = new List<BaseClass>();
[DataMember]
public List<BaseClass> Classes
{
get { return m_Classes; }
set { m_Classes = value; }
}
}
[ServiceContract]
public interface IMyService
{
[OperationContract]
MyClass GetMyClass();
}
public class MyService : IMyService
{
public MyClass GetMyClass()
{
MyClass o = new MyClass();
//THIS WORKS!!!!
//o.Classes = new List<BaseClass>() { new BaseClass() };
//THIS DOES NOT WORK!!!!
o.Classes = new List<BaseClass>() { new BaseClassSub() };
return o;
}
}
ich die folgende Fehlermeldung beim Debuggen:
Die Socket-Verbindung wurde abgebrochen. Dies kann durch einen Fehler beim Verarbeiten Ihrer Nachricht oder das Überschreiten einer Empfangszeitüberschreitung durch den Remote-Host oder durch ein zugrunde liegendes Netzwerkressourcenproblem verursacht werden. Das Zeitlimit für lokale Sockets war '00: 00: 59.6560000 '.
Wer weiß, wie man dieses Problem löst (um Unterklassen zu behandeln)?
Bitte lassen Sie uns nicht über die Ausnahme raten. Veröffentlichen Sie die gesamte Ausnahme. Fang es und poste dann ex.ToString(). –