繼承我有這種模式:protobuf網不序列化泛型類型的泛型類型
[ProtoContract]
[ProtoInclude(2, typeof(TestRequest<>))]
public class XClass<T>
{
public XClass()
{
}
[ProtoMember(1)]
public T Value { get; set; }
}
[ProtoContract]
public class TestRequest<T>: XClass<T> where T : ConcreteClass
{
public TestRequest()
{
}
}
[ProtoContract]
public class ConcreteClass
{
[ProtoMember(1)]
public string Name { get; set; }
}
如果我嘗試序列,並與protobuf網反序列化:
TestRequest<ConcreteClass> request = new TestRequest<ConcreteClass>();
request.Value = new ConcreteClass() { Name = "test" };
MemoryStream msTestString = new MemoryStream();
Serializer.Serialize(msTestString, request);
msTestString.Position = 0;
request = Serializer.Deserialize < TestRequest<ConcreteClass>>(msTestString);
並在此之後如果我檢查request.Value,它是空的。
我在做什麼錯了?
在嘗試反序列化之前,msTestString的價值是什麼? –
[protobuf繼承?]的可能的重複?(http://stackoverflow.com/questions/4746678/protobuf-with-inheritance) –
沒有重複。我只有問題,如果泛型類型從另一個泛型繼承。 –