繁体   English   中英

Visual Studio 从 gRPC.proto 文件自动生成代码

[英]Visual Studio auto generated code from gRPC .proto file

我面临一个问题,Visual Studio 似乎正在改变对象在 .proto 文件中的外观。

.proto 文件: concordium_p2p_rpc.proto

示例 - 这是在 .proto 文件中:

message BlockHash {
  string block_hash = 1;
}

在构建我的项目后,我想创建一个确切的 object 的实例,但是,object 内部的属性现在称为“BlockHash_”,而不是像 .proto 文件中的“block_hash”。

如果我尝试将此 object 序列化为 JSON ... 那么该属性现在称为“blochHash”...第三个名称。

所以在.proto

{
    "block_hash": ""
}

变成 C#

BlockHash bh = new BlockHash()
{
    BlockHash_: ""
}

然后在序列化时

{
    "blockHash": ""
}

那是怎么回事?

好的,所以我在这篇文章中自己找到了这个问题的答案。

https://visualstudiomagazine.com/articles/2020/01/06/defining-grpc-messages.aspx

为什么 Microsoft 决定执行此重命名而不是仅将名称保留在 .proto 文件中,这超出了我的理解范围,显然它引入了我看不到的问题,否则会出现问题。

发生的情况是,Visual Studio 想成为所谓的事情的老板,因此它想通过将第一个字母变为大写、删除下划线并将第一个字母变为下一个单词也是大写=>“BlockHash”。

但是,由于这是对象/类本身的名称,因此该名称可能有问题,因为 class 构造函数使用此名称,因此 Visual Studio 修复了它自己的渡渡鸟添加尾下划线,从而产生名为“BlockHash_”的属性。

为什么哦,你为什么要做这些事情?......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM