Из-за управления версиями одно не распознает другое: DataContract знает, что такое ISerializable, но ISerializable понятия не имеет, что такое DataContract
Как насчет создания оболочки?
Затем отправка оболочки для сериализации / десериализации
[DataContract]
class Person
{
public Person()
{
}
public Person(string firstName, string lastName):this()
{
this.FirstName = firstName;
this.LastName = LastName;
}
[DataMember]
public string FirstName {get;set;}
[DataMember]
public string LastName { get; set; }
}
[Serializable]
class SerializablePersonWrapper : ISerializable
{
SerializablePersonWrapper(SerializationInfo info,
StreamingContext context)
{
string fname = info.GetString("FName");
//did this just for answering any questions
string lname = (string) info.GetValue("LName", typeof(string));
this.PersonItem = new Person(fname, lname);
}
public Person PersonItem {get;set;}
public void GetObjectData(SerializationInfo info,
StreamingContext context)
{
info.AddValue("FName", this.PersonItem.FirstName);
info.AddValue("LName", this.PersonItem.LastName);
}
}