Ejemplo n.º 1
0
        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>();
        }
Ejemplo n.º 2
0
        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("测试");
        }
Ejemplo n.º 3
0
 protected override void ConfigureContainer(IUnityContainer container)
 {
     ServiceContainer.Configure(container);
 }
Ejemplo n.º 4
0
 private static void ConfigureContainer(IUnityContainer container)
 {
     ServiceContainer.Configure(container);
 }