コード例 #1
0
        private static DecoratorRegistration CreateDecorator(this IAspectConfiguration aspectConfiguration)
        {
            var reg = new DecoratorRegistration()
            {
                CanDecorate             = s => CanDecorate(s, aspectConfiguration),
                ImplementingTypeFactory = CreateProxyType
            };

            return(reg);
        }
コード例 #2
0
        private static DecoratorRegistration CreateDecorator(this IAspectValidator aspectValidator, IServiceFactory factory)
        {
            var registration = new DecoratorRegistration()
            {
                CanDecorate             = s => CanDecorate(s, aspectValidator, factory),
                ImplementingTypeFactory = CreateProxyType
            };

            return(registration);
        }
コード例 #3
0
        public void GetInstance_DeferredDecorator_ReturnsDecoratedInstance()
        {
            var container = CreateContainer();

            container.Register <IFoo, Foo>();
            var registration = new DecoratorRegistration();

            registration.CanDecorate             = serviceRegistration => true;
            registration.ImplementingTypeFactory = (factory, serviceRegistration) => typeof(FooDecorator);
            container.Decorate(registration);

            var instance = container.GetInstance <IFoo>();

            Assert.IsInstanceOfType(instance, typeof(FooDecorator));
        }
コード例 #4
0
        public void GetInstance_DeferredDecorator_ReturnsDecoratedInstance()
        {
            var container = CreateContainer();

            container.Register <IFoo, Foo>();
            var registration = new DecoratorRegistration
            {
                CanDecorate             = serviceRegistration => true,
                ImplementingTypeFactory = (factory, serviceRegistration) => typeof(FooDecorator)
            };

            container.Decorate(registration);

            var instance = container.GetInstance <IFoo>();

            Assert.IsAssignableFrom <FooDecorator>(instance);
        }
コード例 #5
0
 public IServiceRegistry Decorate(DecoratorRegistration decoratorRegistration)
 {
     throw new NotImplementedException();
 }
コード例 #6
0
        public void GetInstance_DeferredDecorator_ReturnsDecoratedInstance()
        {
            var container = CreateContainer();
            container.Register<IFoo, Foo>();
            var registration = new DecoratorRegistration();            
            registration.CanDecorate = serviceRegistration => true;
            registration.ImplementingTypeFactory = (factory, serviceRegistration) => typeof(FooDecorator);
            container.Decorate(registration);

            var instance = container.GetInstance<IFoo>();

            Assert.IsInstanceOfType(instance, typeof(FooDecorator));
        }
コード例 #7
0
 public void Decorate(DecoratorRegistration decoratorRegistration)
 {
     throw new NotImplementedException();
 }