当前位置: 首页 > 知识库问答 >
问题:

如何使用Builder为C#中的Profa-net生成的类创建对象

颜骁
2023-03-14

我目前正在尝试将以下项目转换为C#。NET供我个人使用。这两个项目都很相似,主要区别在于编程语言。在转换时,我面临着一个问题,试图为C#中的原型-网生成类构造一个对象。

以下是用于在所有项目中生成类的原始原型文件:

https://github.com/Akdeniz/google-play-crawler/tree/master/src/main/protobuf

生成的类“BulkDetailsRequest”在以下区域实例化:

基于Java的实施

实例创建:https://github.com/onyxbits/Raccoon/blob/master/src/main/java/com/akdeniz/googleplaycrawler/GooglePlayAPI.java(第288行)

类定义:https://raw.githubusercontent.com/onyxbits/Raccoon/master/src/main/java/com/akdeniz/googleplaycrawler/GooglePlay.java(第51237行)

基于Python的实现:

实例创建:https://github.com/egirault/googleplay-api/blob/master/googleplay.py(第208行)

类定义:https://github.com/egirault/googleplay-api/blob/master/googleplay_pb2.py(第3066行)

对于基于C#的实现,我使用https://code.google.com/p/protobuf-net/使用版本“protobuf net r668”。

但无法直接或使用builder创建该类的“可用”实例。为了使类实例可用,类的“docid”属性必须是可设置的。这可能是protobuf网络生成器的问题,还是我使用不当?

[global::System.Serializable, global::ProtoBuf.ProtoContract(Name=@"BulkDetailsRequest")]
  public partial class BulkDetailsRequest : global::ProtoBuf.IExtensible
  {
    public BulkDetailsRequest() {}

    private readonly global::System.Collections.Generic.List<string> _docid = new global::System.Collections.Generic.List<string>();
    [global::ProtoBuf.ProtoMember(1, Name=@"docid", DataFormat = global::ProtoBuf.DataFormat.Default)]
    public global::System.Collections.Generic.List<string> docid
    {
      get { return _docid; }
    }

    private bool _includeChildDocs = default(bool);
    [global::ProtoBuf.ProtoMember(2, IsRequired = false, Name=@"includeChildDocs", DataFormat = global::ProtoBuf.DataFormat.Default)]
    [global::System.ComponentModel.DefaultValue(default(bool))]
    public bool includeChildDocs
    {
      get { return _includeChildDocs; }
      set { _includeChildDocs = value; }
    }
    private global::ProtoBuf.IExtension extensionObject;
    global::ProtoBuf.IExtension global::ProtoBuf.IExtensible.GetExtensionObject(bool createIfMissing)
      { return global::ProtoBuf.Extensible.GetExtensionObject(ref extensionObject, createIfMissing); }
  }

共有1个答案

江俊能
2023-03-14

那个成员是一个列表。只需使用添加(…) 。Clear()等和列表索引器,即列表[索引]=值

例如:

obj.docid.Add("abc");
obj.docid.Add("def");

 类似资料:
  • 问题内容: 我需要一个创建对象的类,为每个创建的对象分配一个ID。通常,此ID是该类的int属性。我希望每次创建一个对象时都增加该值(ID),然后将其分配给从1开始的那个对象。这让我感到震惊,我需要一个静态int属性。 如何初始化此静态属性? 我是否应该创建一个单独的方法来进行ID的增量(作为ID生成器),该增量在构造函数内部调用? 通常,最有效和精心设计的方法是什么? 问题答案: 就像您提到的I

  • 我只是想知道类(Oracle提供的rt.jar内部)如java.lang.Object、java.lang.String是如何从.java源文件生成的。我认为,他们的javac不可能编译它们。 我尝试编译包含“类Dummy{}”的Dummy.java [解析已启动RegularFileObject[dummy.java]] [解析完成12毫秒] [源文件的搜索路径:.]

  • 我使用Netbeans特性在现有项目上创建GUI组件(右键单击包) 我创建了我的按钮,并添加了单击应该做的事情,但是我不知道如何在我的主类中实际实现它。我试图从我的main调用,但它不能将其识别为有效语句。 如何在main中实际调用方法? 主类:公共类Torrehanoirrusion{ 我只想调用我在主类中通过Netbeans创建的按钮。

  • 我正在使用lombok@Builder。当我将注释放在类上时,生成公共方法。但是我想创建私有的方法。不幸的是,注释没有选项。我该怎么办?

  • 我有一个maven项目,我使用MapSTRt来生成映射器,以帮助将实体转换为DTO,反之亦然。这个映射器是在maven的生成源阶段生成的,并存储到目标/生成源和目标/AppName/WEB-INF/类文件夹中。 例如,我有一个映射器 我配置了MapSTRt以使用CDI,因此它将生成以下内容: 它在Wildfly服务器上运行时工作得非常完美,问题是我正在尝试junit测试这个类,为此,我实现了一个定

  • 问题内容: 我试图通过传递另一个jsonObject与jsonObject转换jsonArray。请提供任何示例代码? 问题答案: 这样,您可以为响应编写POJO / Model类 ----------------------------------- com.example.HomePlace.java -------- ----------------------------------- c