コード例 #1
0
 public DefaultRouteValuesBuilder(IOptions <OrleansHttpGatewayOptions> options
                                  , IOptions <OrleansRequesterConfiguration> config
                                  , IOcelotLoggerFactory factory)
 {
     this._config  = config?.Value;
     this._options = options.Value;
     this._logger  = factory.CreateLogger <DefaultRouteValuesBuilder>();
 }
コード例 #2
0
        public DefaultGrainBuilder(IGrainReference grainReferenceProvider, IOptions <OrleansHttpGatewayOptions> config)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            this._grainReferenceProvider = grainReferenceProvider ?? throw new ArgumentNullException(nameof(IGrainReference));
            this._options = config.Value;
        }
 public DefaultGrainFactoryGateway(IServiceProvider serviceProvider, IOptions <OrleansHttpGatewayOptions> config, ILogger <DefaultGrainFactoryGateway> logger)
 {
     if (config == null)
     {
         throw new ArgumentNullException(nameof(config));
     }
     this.logger          = logger;
     this.options         = config.Value;
     this.serviceProvider = serviceProvider;
 }
        public static IServiceCollection AddOrleansHttpGateway(this IServiceCollection services, Action <OrleansHttpGatewayOptions> configure
                                                               , Action <OrleansClientOptions, IClientBuilder> clientBuild)
        {
            services.AddRouting();
            services.TryAddSingleton <IGrainBuilder, DefaultGrainBuilder>();
            services.TryAddSingleton <IGrainFactoryGateway, DefaultGrainFactoryGateway>();
            services.TryAddSingleton <IGrainMethodInvoker, DynamicGrainMethodInvoker>();
            services.TryAddSingleton <IGrainReference, DefaultGrainReference>();
            services.TryAddSingleton <IRouteDataResolve, DefaultRouteDataResolve>();
            services.TryAddSingleton <IParameterBinder, DefaultParameterBinder>();

            services.TryAddSingleton(typeof(IKeyedServiceCollection <,>), typeof(KeyedServiceCollection <,>));

            //JsonSerializer
            services.AddSingleton <JsonSerializer>((IServiceProvider serviceProvider) =>
            {
                JsonSerializerSettings settings = serviceProvider.GetService <JsonSerializerSettings>()
                                                  ?? new JsonSerializerSettings();

                if (!settings.Converters.OfType <ImmutableConverter>().Any())
                {
                    settings.Converters.Add(new ImmutableConverter());
                }
                return(JsonSerializer.Create(settings));
            });


            services.Configure <OrleansHttpGatewayOptions>(options =>
            {
                configure?.Invoke(options);
            });
            var option = new OrleansHttpGatewayOptions();

            configure?.Invoke(option);
            foreach (var item in option.Clients)
            {
                var clientOption = item.Value;
                services.AddTransientNamedService <IClientBuilder>(clientOption.Assembly.Location, (service, key) =>
                {
                    var build = new ClientBuilder();
                    build.Configure <ClusterOptions>(opt =>
                    {
                        opt.ClusterId = clientOption.ClusterId;
                        opt.ServiceId = clientOption.ServiceId;
                    });
                    clientBuild?.Invoke(clientOption, build);
                    return(build);
                });
            }
            return(services);
        }
コード例 #5
0
        public OrleansHttpGatewayMiddleware(RequestDelegate next,
                                            IOptions <OrleansHttpGatewayOptions> config,
                                            JsonSerializer serializer,
                                            IGrainBuilder grainBuilder,
                                            IGrainMethodInvoker grainMethodInvoker,
                                            IRouteDataResolve routeDataResolve,
                                            ILogger <OrleansHttpGatewayMiddleware> logger)
        {
            if (config == null)
            {
                throw new ArgumentNullException(nameof(config));
            }

            this._routeDataResolve = routeDataResolve;
            this._options          = config.Value;
            this._grainBuilder     = grainBuilder ?? throw new ArgumentNullException(nameof(grainBuilder));
            this._grainInvoker     = grainMethodInvoker;
            this._logger           = logger;
            _serializer            = serializer;
            _next = next;
        }
コード例 #6
0
 public DefaultClusterClientBuilder(IOptions <OrleansHttpGatewayOptions> options, IOcelotLoggerFactory factory)
 {
     this._logger  = factory.CreateLogger <DefaultClusterClientBuilder>();
     this._options = options.Value;
 }
コード例 #7
0
 public DefaultRouteDataResolve(IOptions <OrleansHttpGatewayOptions> config)
 {
     this.options = config.Value;
 }