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); }
static void Main(string[] args) { var container = new DIContainer(); container.Register <IInterfaceA, ClassA>(); container.Register <IInterfaceB, ClassB>(); IInterfaceB b = container.Resolve <IInterfaceB>(); b.doB(); }
static void Main(string[] args) { DerivedClass derivedClass = new DerivedClass(); // недоступны методы интерфейсов тк в derivedClass они private IInterfaceA derivedClassUpToA = derivedClass; derivedClassUpToA.Method(); IInterfaceB derivedClassUpToB = derivedClass as IInterfaceB; derivedClassUpToB.Method(); }
static void Main(string[] args) { DerivedClass dClass = new DerivedClass(); IInterfaceA dClassUpToA = dClass; dClassUpToA.Method(); IInterfaceB dClassUpToB = dClass as IInterfaceB; dClassUpToB.Method(); Console.ReadKey(); }
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); }
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; }
public AbstractA(IInterfaceB interfaceB) { _interfaceB = interfaceB; }
public ConcretaA(IInterfaceB interfaceB) : base(interfaceB) { }