Skip to content

SerjinRwD/ProtobufNetDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Реализация Get Started туторила по protobuf-net.Grpc.

Этот пакет позволяет создавать сервисы и их контракты для коммуникации по gRPC используя подход code first ("в стиле" WCF). Субъективно, это гораздо удобнее для разработки внутренних систем, чем использование .proto.

Заметки по проектам

Service

Нужно настроить сервис на поддержку HTTP/2. Для этого нужно немного переписать Program.cs. Я переписал по официальному примеру. Про метод расширения ConfigureKestrel читать здесь.

Метод Division проверяет аргументы. Если Y == 0, выбрасывает исключение RpcException с кодом 13 (InvalidArgument).

Client

Нужно дополнительно установить пакет Grpc.Net.Client (конкретно в примере без него класс GrpcChannel не доступен).

Код вызова методов обёрнут в try/catch. Блок catch перехватывает ошибки RpcException для корректной обработки gRPC кодов ошибок.

Код по обработке ошибок добавлен на основе материалов:

Пример я немного переписал. Чтобы не затирать заданные в конфигурации прослушиваемые адреса, использую опцию ConfigureEndpointDefaults:

kestrelOptions.ConfigureEndpointDefaults(x => x.Protocols = HttpProtocols.Http2);

About

Пример использования protobuf-net.Grpc

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages