Plu*_*luc 2 .net c# serialization protobuf-net
我有以下课程
[ProtoContract(ImplicitFields = ImplicitFields.AllFields)]
public class Foo
{
public int foo { get; set; }
[ProtoIgnore]
public Bar bar { get; set; }
public int ToMD5Hash()
{
var md5 = MD5CryptoServiceProvider.Create();
using (MemoryStream ms = new MemoryStream())
{
Serializer.Serialize<Foo>(ms, this);
var hash = md5.ComputeHash(ms.ToArray());
return BitConverter.ToInt32(hash, 0);
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是我在调用ToMD5Hash时遇到异常.它表示No serializer defined for type: SomeNamespace.Bar即使属性使用ProtoIgnore属性进行修饰.
注意:如果我删除ImplicitFields并使用ProtoMember,序列化将起作用.
难道我做错了什么?
你告诉它要序列化字段.这个领域没有装饰[ProtoIgnore].该属性是,并没有很好的方法将字段等同于属性.这里使用术语"字段"是非常具体和有意的:它不代表"成员" - 它意味着"字段".
选项:
[ProtoIgnore]如果自动实现的属性允许与字段类事件相同的语法,那将是很好的
[field:ProtoIgnore]
public int Foo {get;set;}
Run Code Online (Sandbox Code Playgroud)
但是,我很确定这种语言不支持.
| 归档时间: |
|
| 查看次数: |
521 次 |
| 最近记录: |