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

Visual Studio auto generated code from gRPC .proto file(Visual Studio从GRPC.proto文件自动生成的代码)
本文介绍了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文件自动生成的代码的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)