Вы, вероятно, захотите изучить Мозаики .
РЕДАКТИРОВАНИЕ: На связанной ноте к мозаикам Вы могли бы хотеть изучить Struts. Это не то, что Вы ищете (это - мозаики), но это полезно для кого-то приезжающего от Django.
[TestFixture]
public class Forwarding {
public interface InterfaceA {}
public interface InterfaceB {}
public class ClassAB: InterfaceA, InterfaceB {}
[Test]
public void tt() {
var container = new WindsorContainer();
container.Register(Component.For<InterfaceA, InterfaceB>().ImplementedBy<ClassAB>());
var a = container.Resolve<InterfaceA>();
var b = container.Resolve<InterfaceB>();
Assert.AreSame(a, b);
}
}
Я знаю одно решение - это можно сделать так:
var someInstance = new Instance();
var container = new WindsorContainer();
container.Register(Component.For(typeof(IFirstInterface)).Instance(someInstance));
container.Register(Component.For(typeof(ISecondInterface)).Instance(someInstance));
... но тогда вы теряете способность контейнера создавать экземпляр класса Instance
, поэтому его зависимости не будут разрешены автоматически. Конечно, если у вашего экземпляра нет зависимостей, вам это, вероятно, наплевать.