static void Main(string[] args) { //创建一个容器 IServiceContainer services = new ServiceContainer(); services.Configure(config => { config.Interceptors.AddTyped <SampleInterceptor>(); }); services.AddType <ISampleService, SampleService>(); services.AddType <ISampleRepository, SampleRepository>(); //使用类型注册服务 services.AddType <ILogger, Logger>(); //使用实例注册服务,服务的生命周期限定为单例 services.AddInstance <ITaskService>(new TaskService()); //使用委托工厂注册服务 services.AddDelegate <ITaskService, TaskService>(resolver => new TaskService()); //创建服务解析器 IServiceResolver serviceResolver = services.Build(); //解析单个服务 ISampleService sampleService = serviceResolver.Resolve <ISampleService>(); //解析单个服务,并且验证是否为null,为null则抛出异常 ISampleService sampleServiceRequired = serviceResolver.ResolveRequired <ISampleService>(); //解析服务集合,如果未注册,则为空集合 IEnumerable <ISampleService> sampleServices = serviceResolver.ResolveMany <ISampleService>(); }
public static void Main() { IServiceContainer services = new ServiceContainer(); services.AddType <ICanService, PeopleService>(); services.Configure(configure => { configure.Interceptors.Add(new CustomInterceptorFactory()); }); var serviceResolver = services.Build(); var service = (ICanService)serviceResolver.GetService(typeof(ICanService)); service.CanSayHello("测试"); }
protected override void ConfigureContainer(IUnityContainer container) { ServiceContainer.Configure(container); }
private static void ConfigureContainer(IUnityContainer container) { ServiceContainer.Configure(container); }