Использование карты в файле прото grpc для ядра .net для отправки словаря в качестве параметра запроса делает его закрытым полем (только для чтения) в автоматически сгенерированном коде.Поэтому я не могу назначить словарь для сопоставления и передать его в запросе API.Как мне сделать это read-write.?
Sample proto request:
service xyz{
rpc testTrans(TestRequest) returns (TestResponse);
}
message TestRequest {
map<string,string> props = 1;
}
, чтобы автоматически сгенерированный код выглядел так:
public const int PropsFieldNumber = 1;
private static readonly pbc::MapField<string, string>.Codec _map_Props_codec
= new pbc::MapField<string, string>.Codec(pb::FieldCodec.ForString(10), pb::FieldCodec.ForString(18), 10);
private readonly pbc::MapField<string, string> Props_ = new pbc::MapField<string, string>();
[global::System.Diagnostics.DebuggerNonUserCodeAttribute]
public pbc::MapField<string, string> Props {
get { return Props_; }
}
Так что теперь, когда я пытаюсь назначить свойство в запросе, как показано ниже, выдает ошибку: Свойство или индексатор TestRequest.Props не может быть назначен - он только для чтения.
public static void testTrans(Dictionary<string, string> test)
{
var res = client.InitTrans(new TestRequest
{
Props = test
});
}