В gRP C невозможно привязать значения перечисления из сообщения к дону tnet core Dto - PullRequest
1 голос
/ 17 июня 2020

Мне нужно определить тип dataType строкового массива в сообщении Grp c. не знаю, как это сделать. прямо сейчас я делаю это как

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,
        }
    }
}

здесь, в заголовке, мне нужно привязать данные

1 Ответ

0 голосов
/ 17 июня 2020

Сгенерированный код из 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)

...