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);
 }
Example #3
0
 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);
 }
Example #13
0
 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;
 }
Example #14
0
 public void Build(IServiceBuilder builder)
 {
     // build this service automatically by scanning for declarations
     builder.ScanThisDLL();
 }
Example #15
0
 public void Build(IServiceBuilder builder)
 {
     builder.ScanThisDLL();
 }
		public ServiceProvider(IServiceBuilder builder) : this(new ServiceStorage(), builder)
		{
		}
Example #17
0
 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);
 }
Example #26
0
 /// <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>());
 });
Example #27
0
 /// <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>)));
Example #28
0
 /// <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);
 }
Example #30
0
 /// <summary>
 /// 配置服务。
 /// </summary>
 /// <param name="builder">容器构建实例。</param>
 protected abstract void ConfigureIdentityServices(IServiceBuilder builder);
Example #31
0
 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;
 }
Example #32
0
 public void DefineExtensions(IServiceBuilder serviceBuilder)
 {
     Extensions.Register.DefineActivityExtensions <TRequest, TReturn>(serviceBuilder);
 }
		public ServiceProvider(IServiceStorage storage, IServiceBuilder builder) : base(storage, builder)
		{
		}
Example #34
0
 public static IServiceBuilder UseConsulAddressSelector(this IServiceBuilder builder)
 {
     builder.Services.RegisterType <ConsulRandomAddressSelector>().As <IConsulAddressSelector>().SingleInstance();
     return(builder);
 }