1
我有序列化的基類。protobuf-net將基類反序列化爲繼承類
[ProtoContract]
public class Web2PdfEntity
{
[ProtoMember(1)]
public string Title { get; set; }
[ProtoMember(2)]
public string CUrl { get; set; }
}
我想反序列化Web2PdfEntity類是從Web2PdfEntity繼承Web2PdfServer。
public class Web2PdfServer : Web2PdfEntity
{
public void MyServerMethod {}
public void MyServerMethod2{}
}
我試圖使用下面的代碼來反序列化類,不幸的是屬性沒有設置。
var web2Pdf = Serializer.Deserialize<Web2PdfServer>("c:\Web2PdfEntity-class-to-serialize-file.bin");
web2Pdf.Title //<- not deserialized
web2Pdf.CURL //<- not deserialized
我無法在Web2PdfEntity類中添加[ProtoContract,ProtoInclude(8,typeof(Web2PdfServer))]]屬性,因爲Web2PdfEntity將在類庫(分離的程序集)中編譯,因爲安全原因將不包含Web2PdfServer類。是否有可能以其他方式解決問題? – Tomas
@Marc,我試圖使用你的代碼,並嘗試反序列化類時發生錯誤System.InvalidCastException'發生在protobuf-net.dll中var web2Pdf = Serializer.Deserialize(「c:\ Web2PdfEntity-class-to-序列化-file.bin「); –
Tomas
@Tomas - 所寫的代碼應該沒問題;你的意思是「我用你的代碼減去屬性」?不能使用attribs,請參閱更新 –