gpt4 book ai didi

asp.net-core - Google.Protobuf 不允许属性为空

转载 作者:行者123 更新时间:2023-12-03 16:49:14 25 4
gpt4 key购买 nike

我在 ASPNETCore 之上使用 GRPC,也有这样的模型:

syntax = "proto3";
message Blob {
string id = 1;
string path = 2;
}

问题是当我尝试设置 path属性为 null,它会抛出 ArgumentException .

只需运行此代码:
new Blob { Path = null };

结果如下:
System.ArgumentNullException: Value cannot be null. (Parameter 'value')
at Google.Protobuf.ProtoPreconditions.CheckNotNull[T](T value, String name)
at Grpc.Blob.set_Path(String value)

最佳答案

Protobuf 没有 null 的概念; proto3 将 en 空字符串视为“默认,不发送”,这意味着 null"" 之间没有有效负载差异。所以:也许不要尝试发送 null

或者:protobuf-net(通过 protobuf-net.Grpc 与 gRPC 一起正常工作,它只附加到 Google/Microsoft 位)在这里可以正常工作,并且由于它不绑定(bind)到 proto3,因此可以处理 null"" 不同(将 "" 显式发送为零长度字符串,根本不发送 null)。 protobuf-net 不需要 .proto,但如果有:https://protogen.marcgravell.com/

关于asp.net-core - Google.Protobuf 不允许属性为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61255063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com