Один из моих классов [DataContract] содержит [DataMember], который является List. BaseClass имеет несколько разных подклассов.WCF - Подкласс, добавленный в список [DataMember] <BaseClass> вызывает исключение
Всякий раз, когда этот список содержит экземпляры любого подкласса, возникает исключение во время/после того, как служба возвращается к каналу запроса. Если список не содержит подклассов, он отлично работает.
Вот пример моего кода (который сам по себе не работает):
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;
}
}
Я получаю следующее сообщение об ошибке при отладке:
Подключение гнездо было прервано. Это может быть вызвано ошибкой обработки вашего сообщения или превышением времени приема удаленным хостом или проблемой сетевого ресурса. Локальный тайм-аут гнезда был «00: 00: 59.6560000».
Кто-нибудь знает, как решить эту проблему (получить ее для обработки подклассов)?
Пожалуйста, не заставляйте нас гадать об исключении. Опубликуйте все исключение. Поймайте его, а затем опубликуйте ex.ToString(). –