具有自定义属性的 C# protobuf
C# protobuf with customize attributes
我想生成具有自定义属性的 C# protobuf 代码。
如:
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
使用 partial class
,您可以向 类型 添加属性(和成员),但不能向单个成员添加属性,因此:您可以'不要在这里做任何简单的事情。实际上,您需要调整代码生成本身(意思是:创建您自己的 protoc
插件版本),这远非理想。
另一种选择是手动编辑生成的代码 - 同样:远非理想。
在做任何一个之前,我必须问自己一些关于 [mycall]
的严肃问题,它有多重要,它做了什么,以及是否将它添加到 序列化模型中 是必要的,与创建我自己的域模型相比,它可以具有 您想要的任何属性 ,以及域模型和序列化模型之间的映射。
我想生成具有自定义属性的 C# protobuf 代码。 如:
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
使用 partial class
,您可以向 类型 添加属性(和成员),但不能向单个成员添加属性,因此:您可以'不要在这里做任何简单的事情。实际上,您需要调整代码生成本身(意思是:创建您自己的 protoc
插件版本),这远非理想。
另一种选择是手动编辑生成的代码 - 同样:远非理想。
在做任何一个之前,我必须问自己一些关于 [mycall]
的严肃问题,它有多重要,它做了什么,以及是否将它添加到 序列化模型中 是必要的,与创建我自己的域模型相比,它可以具有 您想要的任何属性 ,以及域模型和序列化模型之间的映射。