public static async Task AddPhotoAsync(EmployeeService.EmployeeServiceClient client) { var md = new Metadata { { "username", "god" }, { "role", "administrator" } }; FileStream fs = File.OpenRead("logo.png"); using var call = client.AddPtoto(md); var stream = call.RequestStream; while (true) { byte[] buffer = new byte[1024]; int numRead = await fs.ReadAsync(buffer, 0, buffer.Length); if (numRead == 0) { break; } if (numRead < buffer.Length) { Array.Resize(ref buffer, numRead); } await stream.WriteAsync(new AddPhotoRequest() { Data = ByteString.CopyFrom(buffer) }); } await stream.CompleteAsync(); var response = await call.ResponseAsync; Console.WriteLine(response.IsOk); }