Некоторое время я уже думал об этом
Проблема, с которой я столкнулся, пытается добавить поведение IEquatable, чтобы мои производные классы могли использовать операции над множествами Intersect of ILink и т. Д.
Вв тот момент, когда у меня есть ...
public interface ILink
{
int Linkid { get; set; }
bool IsActive { get; set; }
}
и несколько производных классов, таких как
public class Domain : ILink
{
public Domain(){}
}
public class User : ILink
{
public User (){}
}
, поэтому для пересечения списка я решил создать абстрактный класс, напримерпоэтому ...
public abstract class AbstractLink : IEquatable<ILink>, ISerializable, ILink
{
public AbstractLink(){}
public AbstractLink(SerializationInfo info, StreamingContext ctxt)
{}
public virtual void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{}
}
однако, когда я меняю свои производные типы с
public class DomainLink : ILink
{
}
на
public class DomainLink : AbstractLink
{
}
, я получаю исключение SerializationException "Элемент 'Linkid' былне найдено."который является первым членом, который пытается десериализовать
КСТАТИ: это Remoting, отсюда и необходимость пользовательской сериализации - есть ли способ объединить эти поведения вместе?
Большое спасибо!
M