在 gRPC 中无法将枚举值从消息绑定到 dotnet 核心 Dto

In gRPC unable to bind enum values from message to dontnet core Dto

我需要在Grpc消息中定义一个字符串数组类型的dataType。不知道该怎么做。现在我正在做

repeated string Title= 1,

这里我需要名称字段作为字符串数组类型。但它显示错误,字段在其中绑定数据时是只读类型:

public override async Task<UserResponse> CreateUser(
    UserModel request, ServerCallContext context)
{
    var eventResponse = new UserResponse();
    var createCmd = new CreateUserCommand
    {
        Model = new UserDto
        {
            Title = request.Title,
            Id = request.Id,
        }
    }
}

标题中我需要绑定数据

protoc 生成的代码如下:

private readonly RepeatedField<string> title_ = new RepeatedField<string>();
[DebuggerNonUserCodeAttribute]
public RepeatedField<string> Title {
    get { return title_; }
}

所以:Title确实是只读的。这意味着您不应该分配它,而应该探索存在哪些 API 用于添加 - 即

var user = new UserDto
{
    Id = request.Id,
}
user.Title.Add(request.Title);
// or AddRange, etc

可能仍然可以使用初始化语法:

new UserDto
{
    Id = request.Id,
    Title = { request.Title }
}

(这是一个 .Add