protobuf-net v4.0.30319中的OverwriteList替代方案

时间:2013-10-23 09:23:51

标签: c# protobuf-net protocol-buffers

我们正在将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; }
    }
}

谢谢, 基兰

1 个答案:

答案 0 :(得分:0)

那仍然存在;它没有以任何方式被删除或更改。请检查您是否引用了正确版本的protobuf-net - 我怀疑您引用的是1.0.0.282。在下面我使用NuGet的当前版本(2.0.0.668):

enter image description here

特别是,缺少IsPacked(在问题中的元数据中)表明您使用的版本真的非常旧。