StructureMap: как зарегистрировать один и тот же экземпляр для всех его интерфейсов - PullRequest
7 голосов
/ 29 марта 2010

Новый вопрос StructureMap.

public class SomeClass: IInterface1, IInterface2 {
}

Я бы хотел пройти следующий тест:

Assert.AreSameInstance(
    container.GetInstance<IInterface1>(), 
    container.GetInstance<IInterface2>());

Как мне сделать явную регистрацию этого?

Я знаю, что в замке Виндзор я бы сделал что-то вроде

kernel.Register(Component.For(typeof(IInterface1), typeof(IInterface2))
    .ImplementedBy(typeof(SomeClass));

Но я не вижу никакого эквивалентного API

1 Ответ

15 голосов
/ 29 марта 2010
ObjectFactory.Initialize(x => 
{ 
    x.For<IInterface1>().Singleton().Use<MyClass>(); 
    x.Forward<IInterface1, IInterface2>(); 
}); 
...