static void Main(string[] args) { var serviceContext = new ServiceContext(); serviceContext.AddType <ITaskService, TaskService>(); var containerBuilder = new ContainerBuilder(); //调用Populate扩展方法在Autofac中注册已经注册到ServiceContainer中的服务(如果有)。注:此方法调用应在RegisterDynamicProxy之前 containerBuilder.Populate(serviceContext); var configuration = serviceContext.Configuration; //调用RegisterDynamicProxy扩展方法在Autofac中注册动态代理服务和动态代理配置 containerBuilder.RegisterDynamicProxy(configuration, config => { config.Interceptors.AddTyped <MethodExecuteLoggerInterceptor>(Predicates.ForService("*Service")); }); var container = containerBuilder.Build(); var taskService = container.Resolve <ITaskService>(); taskService.Run(); }
/// <summary> /// Inits the contrainer. /// </summary> /// <returns>An IServiceContext.</returns> public static IServiceContext InitContrainer() { var container = new ServiceContext(); container.AddType <DbDatabase, MySqlDbDatabase>(Lifetime.Scoped); container.AddType <DbData, MySqlDbData>(Lifetime.Scoped); container.AddType <DbTable, MySqlDbTable>(Lifetime.Scoped); container.AddType <DbIndex, MySqlDbIndex>(Lifetime.Scoped); container.AddType <DbColumns, MySqlDbColumns>(Lifetime.Scoped); container.AddType <IDbProvider, MySqlDbProvider>(Lifetime.Scoped); container.AddType <DbOption, MySqlOption>(Lifetime.Scoped); container.AddType <ISqlBuilder, MySqlSqlBuilder>(Lifetime.Scoped); container.AddType <TransactionManager, MySqlTransactionManager>(Lifetime.Scoped); container.AddType <DbContext, MySqlDbContext>(); return(container); }
public void ImplementationMethodFromInjector_Test() { var container = new ServiceContext(); container.AddType <IService, Service>(); var resolver = container.Build(); var service = resolver.Resolve <IService>(); var val = service.GetValue("le"); Assert.Equal("lemon", val); }
public void Interface_Proxy() { var serviceContainer = new ServiceContext(); serviceContainer.AddType <IProxyTransient, ProxyTransient>(); var resolver = serviceContainer.Build(); var transient = resolver.Resolve <IProxyTransient>(); Assert.True(transient.IsProxy()); }
public void Resolve_OptionalDependencyDoesNotExists() { var serviceContext = new ServiceContext(); serviceContext .AddType <Dependency>() .AddType <Service>(); var container = serviceContext.Build(); var service = container.Resolve <Service>(); Assert.True(service.HasDependency); Assert.False(service.HasOptionalDependency); }
public void LoadBinding() { var dict = new Dictionary <string, string> { { "creator:age", "24" }, { "creator:name", "lemon" } }; var builder = new ConfigurationBuilder().AddEnvironmentVariables(); builder.AddInMemoryCollection(dict); var configuration = builder.Build(); var container = new ServiceContext(); container.AddInstance <IConfiguration>(configuration); container.AddConfigurationInject(); container.AddType <BindConfigService>(); var service = container.Build().Resolve <BindConfigService>(); Assert.Equal(service.ToString(), "lemon-24"); }