public void CanInterceptWithBehaviourChainInConfiguration()
        {
            IUnityContainer container = GetContainer("CanInterceptWithBehaviourChainInConfiguration");

            IInterfaceB proxy       = container.Resolve <IInterfaceB>();
            string      input       = String.Empty;
            string      returnValue = proxy.TargetMethod(ref input);

            Assert.AreEqual <string>("PreCPreAPreBtargetPostBPostAPostC", input);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            var container = new DIContainer();

            container.Register <IInterfaceA, ClassA>();
            container.Register <IInterfaceB, ClassB>();

            IInterfaceB b = container.Resolve <IInterfaceB>();

            b.doB();
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            DerivedClass derivedClass = new DerivedClass();
            // недоступны методы интерфейсов тк в derivedClass они private

            IInterfaceA derivedClassUpToA = derivedClass;

            derivedClassUpToA.Method();

            IInterfaceB derivedClassUpToB = derivedClass as IInterfaceB;

            derivedClassUpToB.Method();
        }
Beispiel #4
0
        static void Main(string[] args)
        {
            DerivedClass dClass = new DerivedClass();

            IInterfaceA dClassUpToA = dClass;

            dClassUpToA.Method();

            IInterfaceB dClassUpToB = dClass as IInterfaceB;

            dClassUpToB.Method();

            Console.ReadKey();
        }
Beispiel #5
0
        static void Main(string[] args)
        {
            DerivedClass derivedClass = new DerivedClass();

            derivedClass.Method();

            IInterfaceA derivedClassUpToA = derivedClass as IInterfaceA;

            derivedClassUpToA.Method();

            IInterfaceB derivedClassUpToB = derivedClass;

            derivedClassUpToB.Method();
        }
        static void Main(string[] args)
        {
            // Instantiate container
            DiContainer container = new DiContainer();

            // Register classes to container
            container.Register <IInterfaceA, ClassA>();
            container.Register <IInterfaceB, ClassB>();

            // Resolve class from container
            IInterfaceB classB = container.Resolve <IInterfaceB>();

            classB.DoB();

            Console.ReadKey();
        }
        public void TestDefaultNotAppliedForDifferentInterfaceImplementations()
        {
            IUnityContainer container = GetContainer("TestDefaultNotAppliedForDifferentInterfaceImplementations");

            IInterfaceB proxy       = container.Resolve <IInterfaceB>();
            string      input       = String.Empty;
            string      returnValue = proxy.TargetMethod(ref input);

            Assert.IsTrue(RemotingServices.IsTransparentProxy(proxy));
            Assert.AreEqual <string>("PreAtargetPostA", input);

            IInterfaceB proxy1       = container.Resolve <IInterfaceB>("WithNameA");
            string      input1       = String.Empty;
            string      returnValue1 = proxy1.TargetMethod(ref input1);

            Assert.IsFalse(RemotingServices.IsTransparentProxy(proxy1));
            Assert.AreEqual <string>("target", input1);
        }
        public void CanInterceptSameTypeWithDifferentNamesWithDifferentBehavioursForSameContainerConfiguration()
        {
            IUnityContainer container = GetContainer("CanInterceptSameTypeWithDifferentNamesWithDifferentBehavioursForSameContainerConfiguration");

            IInterfaceB proxy1      = container.Resolve <IInterfaceB>("UsingBehaviourA");
            string      input       = String.Empty;
            string      returnValue = proxy1.TargetMethod(ref input);

            Assert.AreEqual <string>("PreAtargetPostA", input);

            IInterfaceB proxy2       = container.Resolve <IInterfaceB>("UsingBehaviourB");
            string      input2       = String.Empty;
            string      returnValue2 = proxy2.TargetMethod(ref input2);

            Assert.AreEqual <string>("PreBtargetPostB", input2);

            IInterfaceB proxy3       = container.Resolve <IInterfaceB>("UsingBehaviourC");
            string      input3       = String.Empty;
            string      returnValue3 = proxy3.TargetMethod(ref input3);

            Assert.AreEqual <string>("PreCtargetPostC", input3);
        }
Beispiel #9
0
 public static void Print(this IInterfaceB b) => Console.WriteLine("B");
 public IList <int> SimpleQueryWithDependency(int a, int b, IInterfaceB dependencyB)
 {
     return(new List <int> {
         a, b
     });
 }
 public QueryObjectWithPrivateCtor(IInterfaceA dependencyA, IInterfaceB dependencyB)
 {
     this.dependencyA = dependencyA;
     this.dependencyB = dependencyB;
 }
Beispiel #12
0
 public AbstractA(IInterfaceB interfaceB)
 {
     _interfaceB = interfaceB;
 }
Beispiel #13
0
 public ConcretaA(IInterfaceB interfaceB) : base(interfaceB)
 {
 }