CSharp · Console
using System;
using Microsoft.Practices.Unity;
public class Program
{
public static void Main()
{
var container = new UnityContainer();
container.RegisterType<IMyInterface, ClassB>();
container.RegisterType<IMyInterface, ClassC>();
container.RegisterType<IMyInterface, ClassA>(new InjectionConstructor(new ResolvedParameter(typeof(ClassB))));
container.RegisterType<IMyInterface, ClassD>();
var classA = container.Resolve<ClassA>();
Console.WriteLine("Resolved to: "+classA);
var myInterface = container.Resolve<IMyInterface>();
Console.WriteLine("Resolved to: "+myInterface);
}
}
public interface IMyInterface
{
void PushToDatabase();
}
public class ClassA : IMyInterface
{
public ClassA(IMyInterface myInterface)
{
Console.WriteLine("Constructor of ClassA was injected with: "+myInterface);
}
public void PushToDatabase()
{
}
}
public class ClassB : IMyInterface
{
public void PushToDatabase()
{
//Actual insert on database
}
}
public class ClassC : IMyInterface
{
public void PushToDatabase()
{
//Actual insert on database
}
}
public class ClassD : IMyInterface
{
public void PushToDatabase()
{
//Actual insert on database
}
}