本文介绍了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文件自动生成的代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!