public void Init() { _service = Substitute.For<IBrowsersManagerApi, ICommunicationObject>(); _serviceStarter = Substitute.For<IServiceBuilder<IBrowsersManagerApi>>(); _serviceStarter.CreateServiceAndTryToConnect().Returns(_service); _uiHelper = Substitute.For<IUiHelper>(); _log = Substitute.For<ILogger>(); _communicationObject = (ICommunicationObject)_service; _serviceClient = new AbstractServiceClient<IBrowsersManagerApi>(_serviceStarter, _uiHelper, _log); }
public void Init() { _browserApi = Substitute.For<IBrowsersManagerApi, ICommunicationObject>(); _serviceStarter = Substitute.For<IServiceBuilder<IBrowsersManagerApi>>(); _serviceStarter.CreateServiceAndTryToConnect().Returns(_browserApi); _uiHelper = Substitute.For<IUiHelper>(); _log = Substitute.For<ILogger>(); _communicationObject = (ICommunicationObject)_browserApi; _browserWindowsCommunicator = new BrowserWindowsCommunicator(_serviceStarter, _uiHelper, _log); }
protected virtual void RegisterServiceBuilder(IServiceBuilder builder) { }
/// <summary> /// 使用Json编解码器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseJsonCodec(this IServiceBuilder builder) { return(builder.UseCodec <JsonTransportMessageCodecFactory>()); }
/// <summary> /// 使用编解码器。 /// </summary> /// <typeparam name="T">编解码器工厂实现类型。</typeparam> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseCodec <T>(this IServiceBuilder builder) where T : class, ITransportMessageCodecFactory { builder.Services.RegisterType(typeof(T)).As(typeof(ITransportMessageCodecFactory)).SingleInstance(); return(builder); }
/// <summary> /// 设置服务地址选择器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <param name="instance">地址选择器实例。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseAddressSelector(this IServiceBuilder builder) { return(builder.UseRandomAddressSelector().UsePollingAddressSelector().UseFairPollingAddressSelector().UseHashAlgorithmAddressSelector()); }
/// <summary> /// 使用压力最小优先分配轮询的地址选择器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseFairPollingAddressSelector(this IServiceBuilder builder) { builder.Services.RegisterType(typeof(FairPollingAdrSelector)) .Named(AddressSelectorMode.FairPolling.ToString(), typeof(IAddressSelector)).SingleInstance(); return(builder); }
/// <summary> /// 设置服务路由管理者。 /// </summary> /// <param name="builder">服务构建者。</param> /// <param name="instance">服务路由管理者实例。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseRouteManager(this IServiceBuilder builder, IServiceRouteManager instance) { builder.Services.RegisterInstance(instance); return(builder); }
/// <summary> /// 使用随机的地址选择器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseRandomAddressSelector(this IServiceBuilder builder) { builder.Services.RegisterType(typeof(RandomAddressSelector)).As(typeof(IAddressSelector)).SingleInstance(); return(builder); }
/// <summary> /// 设置服务地址选择器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <param name="instance">地址选择器实例。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseAddressSelector(this IServiceBuilder builder, IAddressSelector instance) { builder.Services.RegisterInstance(instance); return(builder); }
/// <summary> /// 设置服务地址选择器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <param name="factory">服务地址选择器实例工厂。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseAddressSelector(this IServiceBuilder builder, Func <IServiceProvider, IAddressSelector> factory) { builder.Services.RegisterAdapter(factory); return(builder); }
/// <summary> /// 设置服务地址选择器。 /// </summary> /// <typeparam name="T">地址选择器实现类型。</typeparam> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseAddressSelector <T>(this IServiceBuilder builder) where T : class, IAddressSelector { builder.Services.RegisterType(typeof(T)).As(typeof(IAddressSelector)).SingleInstance(); return(builder); }
public ServiceModelHttpMiddleware(RequestDelegate next, IApplicationBuilder app, IServiceBuilder serviceBuilder, IDispatcherBuilder dispatcherBuilder, ILogger <ServiceModelHttpMiddleware> logger) { _app = app; _serviceBuilder = serviceBuilder; _dispatcherBuilder = dispatcherBuilder; _next = next; _logger = logger; _branch = BuildBranchAndInvoke; serviceBuilder.Opened += ServiceBuilderOpenedCallback; }
public void Build(IServiceBuilder builder) { // build this service automatically by scanning for declarations builder.ScanThisDLL(); }
public void Build(IServiceBuilder builder) { builder.ScanThisDLL(); }
public ServiceProvider(IServiceBuilder builder) : this(new ServiceStorage(), builder) { }
public static IServiceBuilder UseHealthCheck(this IServiceBuilder builder) { builder.Services.RegisterType <DefaultHealthCheckService>().As <IHealthCheckService>().SingleInstance(); return(builder); }
/// <summary> /// 使用轮询的地址选择器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UsePollingAddressSelector(this IServiceBuilder builder) { builder.Services.RegisterType(typeof(PollingAddressSelector)) .Named(AddressSelectorMode.Polling.ToString(), typeof(IAddressSelector)); return(builder); }
/// <summary> /// 设置mqtt服务路由管理者。 /// </summary> /// <param name="builder">mqtt服务构建者。</param> /// <param name="factory">mqtt服务路由管理者实例工厂。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseMqttRouteManager(this IServiceBuilder builder, Func <IServiceProvider, IMqttServiceRouteManager> factory) { builder.Services.RegisterAdapter(factory).InstancePerLifetimeScope(); return(builder); }
/// <summary> /// 添加服务运行时服务。 /// </summary> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder AddServiceRuntime(this IServiceBuilder builder) { builder.Services.RegisterType(typeof(DefaultServiceEntryLocate)).As(typeof(IServiceEntryLocate)).SingleInstance(); builder.Services.RegisterType(typeof(DefaultServiceExecutor)).As(typeof(IServiceExecutor)).SingleInstance(); return(builder.RegisterServices().RegisterRepositories().RegisterServiceBus().RegisterModules().AddRuntime()); }
/// <summary> /// 使用随机的地址选择器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseRandomAddressSelector(this IServiceBuilder builder) { builder.Services.RegisterType(typeof(RandomAddressSelector)) .Named(AddressSelectorMode.Random.ToString(), typeof(IAddressSelector)).SingleInstance(); return(builder); }
public void Build(IServiceBuilder builder) { builder.BuildService <BankService>(); builder.ScanThisDLL(); }
/// <summary> /// 使用编解码器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <param name="codecFactory"></param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseCodec(this IServiceBuilder builder, ITransportMessageCodecFactory codecFactory) { builder.Services.RegisterInstance(codecFactory).SingleInstance(); return(builder); }
void ILightweightProfile.RegisterServices(IServiceBuilder serviceBuilder, IMockResolver mockResolver) { RegisterServices?.Invoke(serviceBuilder, mockResolver); }
/// <summary> /// 使用编解码器。 /// </summary> /// <param name="builder">服务构建者。</param> /// <param name="codecFactory">编解码器工厂创建委托。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseCodec(this IServiceBuilder builder, Func <IServiceProvider, ITransportMessageCodecFactory> codecFactory) { builder.Services.RegisterAdapter(codecFactory).SingleInstance(); return(builder); }
/// <summary> /// 添加后台服务。 /// </summary> /// <param name="builder">服务构建实例。</param> /// <returns>服务构建实例。</returns> public static IServiceBuilder AddTaskServices(this IServiceBuilder builder) => builder.AddServices(services => { services.TryAddEnumerable(ServiceDescriptor.Transient <IDataMigration, TaskDataMigration>()); services.TryAddEnumerable(ServiceDescriptor.Transient <IHostedService, TaskHostedService>()); });
/// <summary> /// 添加静态资源目录。 /// /// 注意: /// 1.资源目录为wwwroot,项目只能有一个wwwroot目录,为了不和其他程序集冲突,在wwwroot目录下文件夹最好和Areas目录下的文件夹一样。 /// 2.由于VS打包资源文件会把目录非法字符转换为“_”,如:“lib/font-awesome/css/font-awesome.min.css”将被转换为“lib/font_awesome/css/font-awesome.min.css”, /// 所以尽量不要在文件夹上面使用非字母名称。 /// </summary> /// <typeparam name="TAssemblyResourceType">程序集资源类型。</typeparam> /// <param name="builder">服务集合。</param> /// <returns>服务集合。</returns> /// <remarks> /// 1.编辑“.csproj”项目文件,添加以下代码段(将文件夹设置为嵌入资源): /// <code> /// <![CDATA[ /// <ItemGroup> /// <EmbeddedResource Include = "wwwroot\**" /> /// </ItemGroup> /// ]]> /// </code> /// 2.实现接口<see cref="IServiceConfigurer"/>,调用本方法注册。 /// </remarks> public static IServiceBuilder AddResources <TAssemblyResourceType>(this IServiceBuilder builder) => builder.AddServices(services => services.ConfigureOptions(typeof(ResourceOptions <TAssemblyResourceType>)));
/// <summary> /// 配置服务方法。 /// </summary> /// <param name="builder">容器构建实例。</param> public void ConfigureServices(IServiceBuilder builder) { builder.AddResources <ServiceConfigurer>(); }
/// <summary> /// 设置服务路由管理者。 /// </summary> /// <typeparam name="T">服务路由管理者实现。</typeparam> /// <param name="builder">服务构建者。</param> /// <returns>服务构建者。</returns> public static IServiceBuilder UseRouteManager <T>(this IServiceBuilder builder) where T : class, IServiceRouteManager { builder.Services.RegisterType(typeof(T)).As(typeof(IServiceRouteManager)).SingleInstance(); return(builder); }
/// <summary> /// 配置服务。 /// </summary> /// <param name="builder">容器构建实例。</param> protected abstract void ConfigureIdentityServices(IServiceBuilder builder);
protected ServiceProviderBase(string name, IServiceStorage storage, IServiceBuilder builder = null) { _name = string.IsNullOrEmpty(name) ? string.Empty : name.Trim(); _storage = storage ?? throw new ArgumentNullException(nameof(storage)); _builder = builder; }
public void DefineExtensions(IServiceBuilder serviceBuilder) { Extensions.Register.DefineActivityExtensions <TRequest, TReturn>(serviceBuilder); }
public ServiceProvider(IServiceStorage storage, IServiceBuilder builder) : base(storage, builder) { }
public static IServiceBuilder UseConsulAddressSelector(this IServiceBuilder builder) { builder.Services.RegisterType <ConsulRandomAddressSelector>().As <IConsulAddressSelector>().SingleInstance(); return(builder); }