J'ai ce modèle:Protobuf net non sérialisation type générique hérite de type générique
[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; }
}
Et si j'essaie de sérialisation et la désérialisation avec protobuf-net:
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);
Et après Si j'inspecte request.Value, c'est null.
Qu'est-ce que je fais mal?
Quelle est la valeur de msTestString avant d'essayer de le désérialiser? –
duplication possible de [protobuf avec héritage?] (Http://stackoverflow.com/questions/4746678/protobuf-with-inheritance) –
Aucun doublon. J'ai seulement un problème si le type générique hérite d'un autre type générique. –