具有自定义属性的C#protobuf

具有自定义属性的C#protobuf,c#,attributes,protocol-buffers,C#,Attributes,Protocol Buffers,我想生成带有自定义属性的C#protobuf代码。 例如: 公共密封部分类登录:pb::IMessage #如果!GOOGLE_PROTOBUF_REFSTRUCT_兼容性_模式 ,pb::IBufferMessage #恩迪夫 { [mycall]//自定义属性 [global::System.Diagnostics.DebuggerNonUserCodeAttribute]//原始 公共登录(){ OnConstruction(); } …//rest代码 使用分部类,您可以向类型添加属性(

我想生成带有自定义属性的C#protobuf代码。 例如:

公共密封部分类登录:pb::IMessage
#如果!GOOGLE_PROTOBUF_REFSTRUCT_兼容性_模式
,pb::IBufferMessage
#恩迪夫
{
[mycall]//自定义属性
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]//原始
公共登录(){
OnConstruction();
}
…//rest代码

使用
分部类
,您可以向类型添加属性(和成员),但无法向单个成员添加属性,因此:您无法在这里做任何简单的事情。实际上,您需要调整代码生成器本身(意思是:创建您自己的
protoc
addin版本),这远远不够理想

另一个选项是手动编辑生成的代码——同样,这远非理想


在做这两件事之前,我必须问自己一些关于
[mycall]的严肃问题
以及它的重要性、作用以及是否有必要将其添加到序列化模型,与创建我自己的域模型(可以具有任何您想要的属性)以及域模型和序列化模型之间的映射相比。

使用
分部类
,您可以添加属性(和成员)对于类型,但您不能向单个成员添加属性,因此:您不能在这里做任何简单的事情。实际上,您需要调整代码生成器本身(意思是:创建您自己的
protoc
addin版本),这远不理想

另一个选项是手动编辑生成的代码——同样,这远非理想


在做这两件事之前,我必须问自己一些关于
[mycall]的严肃问题
以及它的重要性、作用以及是否有必要将其添加到序列化模型,与创建我自己的域模型(可以具有您想要的任何属性)以及域模型和序列化模型之间的映射相比。

谢谢。我尝试从原始生成的代码生成代码。谢谢。我尝试从原始生成的代码。
public sealed partial class LoginIn : pb::IMessage<LoginIn>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    [mycall] // customize attributes
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute] // original
    public LoginIn() {
      OnConstruction();
    }
   ... // rest code