Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# protobuf net v2 r450继承_C#_Protobuf Net - Fatal编程技术网

C# protobuf net v2 r450继承

C# protobuf net v2 r450继承,c#,protobuf-net,C#,Protobuf Net,协议网络v2 r450继承 希望有人能用protobuf网络为我指明正确的方向。我能找到的所有示例代码似乎都表明我正在尝试的应该是可能的 域(我的最终域将比此域更复杂,但我甚至无法使其工作): 测试: var geographyDataTest = new GeographyData(); geographyDataTest.LastRefreshTime = DateTime.Now; geographyDataTest.Item = new HotelData { Id = Guid

协议网络v2 r450继承

希望有人能用protobuf网络为我指明正确的方向。我能找到的所有示例代码似乎都表明我正在尝试的应该是可能的

域(我的最终域将比此域更复杂,但我甚至无法使其工作):

测试:

var geographyDataTest = new GeographyData();
geographyDataTest.LastRefreshTime = DateTime.Now;
geographyDataTest.Item = new HotelData
{
    Id = Guid.Empty,
    Name = "Test",
};

var test = ProtoBuf.Serializer.DeepClone(geographyDataTest);
例外情况:

无法将“Domain.GeographyItem”类型的对象强制转换为“Domain.Geography.HotelData”类型

有人能给我一些建议吗


谢谢

有一个关于引用和继承的问题,我希望很快能解决。

同意,看起来应该可以解决。我不在电脑前,但稍后再看谢谢你的快速回复,马克真的很感激!当然,如果我删除AsReference,它会工作得很好,当我真的想要这个:)@David如果你需要的话,我可能会在几天内看到这个,那太棒了,但是我知道开发库的痛苦,突然间每个人都希望他们为他们正在做的事情工作:)所以不要自杀,我会找到另一个解决方案,我确信:)@david这是一个应该得到支持的方案。谢谢,那太好了:)
var geographyDataTest = new GeographyData();
geographyDataTest.LastRefreshTime = DateTime.Now;
geographyDataTest.Item = new HotelData
{
    Id = Guid.Empty,
    Name = "Test",
};

var test = ProtoBuf.Serializer.DeepClone(geographyDataTest);
[InvalidCastException: Unable to cast object of type 'Domain.Geography.GeographyItem' to type 'Domain.Geography.HotelData'.]
   proto_14(Object , ProtoReader ) +2638
   ProtoBuf.Serializers.CompiledSerializer.ProtoBuf.Serializers.IProtoSerializer.Read(Object value, ProtoReader source) in C:\Dev\protobuf-net\protobuf-net\Serializers\CompiledSerializer.cs:49
   ProtoBuf.Meta.RuntimeTypeModel.Deserialize(Int32 key, Object value, ProtoReader source) in C:\Dev\protobuf-net\protobuf-net\Meta\RuntimeTypeModel.cs:413
   ProtoBuf.ProtoReader.ReadTypedObject(Object value, Int32 key, ProtoReader reader, Type type) in C:\Dev\protobuf-net\protobuf-net\ProtoReader.cs:534
   ProtoBuf.BclHelpers.ReadNetObject(Object value, ProtoReader source, Int32 key, Type type, NetObjectOptions options) in C:\Dev\protobuf-net\protobuf-net\BclHelpers.cs:428
   proto_2(Object , ProtoReader ) +688
   ProtoBuf.Serializers.CompiledSerializer.ProtoBuf.Serializers.IProtoSerializer.Read(Object value, ProtoReader source) in C:\Dev\protobuf-net\protobuf-net\Serializers\CompiledSerializer.cs:49
   ProtoBuf.Meta.RuntimeTypeModel.Deserialize(Int32 key, Object value, ProtoReader source) in C:\Dev\protobuf-net\protobuf-net\Meta\RuntimeTypeModel.cs:413
   ProtoBuf.Meta.TypeModel.DeepClone(Object value) in C:\Dev\protobuf-net\protobuf-net\Meta\TypeModel.cs:1034
   ProtoBuf.Serializer.DeepClone(T instance) in C:\Dev\protobuf-net\protobuf-net\Serializer.cs:46