我们正在将protobuf-net库参考从v2.0.50727更新到我们的应用程序中的v4.0.30319。在更新protobuf dll之后,我们发现最新版本的prtobuf-net中的ProtomemberAttribute缺少OverwriteList(在我们的项目中使用)。
有人可以让我知道我们应该使用什么OverwriteList,这样我们对protobuf更新没有任何影响吗?
以下是我从Protobuf版本中看到的内容(我们正在更新)元数据:
#region Assembly protobuf-net.dll, v4.0.30319
// C:\src\MyProjectName\lib\protobuf-net\protobuf-net.dll
#endregion
using System;
namespace ProtoBuf
{
// Summary:
// Declares a member to be used in protocol-buffer serialization, using the
// given Tag. A DataFormat may be used to optimise the serialization format
// (for instance, using zigzag encoding for negative numbers, or fixed-length
// encoding for large values.
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Field, AllowMultiple = false, Inherited = true)]
public class ProtoMemberAttribute : Attribute
{
// Summary:
// Creates a new ProtoMemberAttribute instance.
//
// Parameters:
// tag:
// Specifies the unique tag used to identify this member within the type.
public ProtoMemberAttribute(int tag);
// Summary:
// Gets or sets the data-format to be used when encoding this value.
public DataFormat DataFormat { get; set; }
//
// Summary:
// Gets or sets a value indicating whether this member is mandatory.
public bool IsRequired { get; set; }
//
// Summary:
// Gets or sets the original name defined in the .proto; not used during serialization.
public string Name { get; set; }
//
// Summary:
// Gets or sets a value indicating whether this member is packed (lists/arrays).
public MemberSerializationOptions Options { get; set; }
//
// Summary:
// Gets the unique tag used to identify this member within the type.
public int Tag { get; }
}
}
谢谢, 基兰
答案 0 :(得分:0)
那仍然存在;它没有以任何方式被删除或更改。请检查您是否引用了正确版本的protobuf-net - 我怀疑您引用的是1.0.0.282。在下面我使用NuGet的当前版本(2.0.0.668):
特别是,缺少IsPacked
(在问题中的元数据中)表明您使用的版本真的非常旧。