ServiceModel.Grpc

Code-first for gRPC

View on GitHub

ServiceModel.Grpc Grpc.Core server configuration

AddServiceModel…

var server = new Grpc.Core.Server();

server.Services.AddServiceModelSingleton<MyService>(
    new MyService(),
    options =>
    {
        // service configuration
        options.MarshallerFactory = ...
        options.ErrorHandler = ...
        options.ServiceProvider = ...
        options.Filters ...
    });

server.Services.AddServiceModelTransient<MyService>(
    () => new MyService(),
    options =>
    {
        // service configuration
        options.MarshallerFactory = ...
        options.ErrorHandler = ...
        options.ServiceProvider = ...
        options.Filters ...
    });

// register MyService in serviceProvider
IServiceProvider serviceProvider = ...;

server.Services.AddServiceModel<MyService>(
    serviceProvider,
    options =>
    {
        // service configuration
        options.MarshallerFactory = ...
        options.ErrorHandler = ...
        options.Filters = ...
    });

BindServiceModel…

Grpc.Core.ServiceBinderBase serviceBinder = ...

serviceBinder.BindServiceModel<MyService>(
    () => new MyService(),
    options =>
    {
        // service configuration
        options.MarshallerFactory = ...
        options.ErrorHandler = ...
        options.ServiceProvider = ...
        options.Filters = ...
    });

// register MyService in serviceProvider
IServiceProvider serviceProvider = ...;

serviceBinder.BindServiceModel<MyService>(
    serviceProvider,
    options =>
    {
        // service configuration
        options.MarshallerFactory = ...
        options.ErrorHandler = ...
        options.Filters = ...
    });

ServiceModelGrpcServiceOptions