如果我在proto文件中使用bool作为类型,Postman甚至不会显示属性,如果我使用google.protobuf.BoolValue作为类型,它会显示“is_valid”:{}在C#中,当is_valid = false时,它是有效的,但是当is_valid = true时,它是有效的,那么为什么当它为false时,它不显示任何内容呢?
原型示例:
syntax = "proto3";
option csharp_namespace = "xxx.Organization.V1.Contracts";
import "google/protobuf/wrappers.proto";
import "protos/txp/common/api/query/range.proto";
import "protos/txp/common/filters/string_filter.proto";
import "protos/txp/organization/v1/timezone.proto";
package txp.organization.v1;
message AddressValidationResponse {
Address address = 1;
google.protobuf.BoolValue is_valid = 2;
google.protobuf.BoolValue is_non_postal = 3;
repeated google.protobuf.StringValue errors = 4;
google.protobuf.StringValue success_message = 5;
google.protobuf.StringValue address_precision = 6;
Results results = 7;
}
为is_valid字段自动生成的C#代码:
/// <summary>Field number for the "is_valid" field.</summary>
public const int IsValidFieldNumber = 2;
private static readonly pb::FieldCodec<bool?> _single_isValid_codec = pb::FieldCodec.ForStructWrapper<bool>(18);
private bool? isValid_;
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
[global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
public bool? IsValid {
get { return isValid_; }
set {
isValid_ = value;
}
}
** Postman 回应:**
x1c 0d1x谢谢!
1条答案
按热度按时间pobjuy321#
我找到了原因,在这些情况下,当属性值等于默认值时,Postman不会显示属性,所以对我来说没什么大不了的。但也许有一种方法可以让这些属性显示出来,以防有人需要它们。