Visual Studio从GRPC.proto文件自动生成的代码 [英] Visual Studio auto generated code from gRPC .proto file

查看:48
本文介绍了Visual Studio从GRPC.proto文件自动生成的代码的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

.proto文件:concordium_p2p_rpc.proto

示例-这在.proto文件中:

message BlockHash {
  string block_hash = 1;
}

生成项目后,我想创建此对象的一个实例,但是,对象内的属性现在称为";BlockHash_";,而不是.proto文件中的";挡路_哈希&qot;。

如果我尝试将此对象序列化为JSON,则念力已完成.则该属性现在称为";blochHash";.第三个名字。

.proto中的SO

{
    "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对象的属性&挡路_HASH&q;。

但是,由于这是类本身的名称,因此此名称可能有问题,因为类构造函数使用此名称,因此Visual Studio会修复它自己的dodo添加尾部下划线,从而产生名为";BlockHash_";的属性。

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

这篇关于Visual Studio从GRPC.proto文件自动生成的代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆