我有以下课程
[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(ms, this); var hash = md5.ComputeHash(ms.ToArray()); return BitConverter.ToInt32(hash, 0); } } }
但是我在调用ToMD5Hash时遇到异常.它表示No serializer defined for type: SomeNamespace.Bar
即使属性使用ProtoIgnore属性进行修饰.
注意:如果我删除ImplicitFields并使用ProtoMember,序列化将起作用.
难道我做错了什么?