У меня есть интерфейс IConnection, реализованный TcpConnection.Кроме того, два класса принимают IConnection в качестве параметра, и я хотел бы использовать для этого один и тот же экземпляр TcpConnection.
Проблема в том, что она не работает.С каждым методом, который я пробовал, TcpConnection создавался более одного раза.Вот подкласс Registry , который я использую:
public class InstanceRegistry : Registry
{
public InstanceRegistry()
{
var connection =
For<IConnection>.Add<TcpConnection>.
Named("Connection"); // ...and additional configuration
For<IFoo>.Add<Foo>.
// Ctor<IConnection>.Is(connection); // Did not work
Ctor<IConnection>.Is( i => i.GetInstance<IConnection>("Connection") );
For<IBar>.Add<Bar>.
// Ctor<IConnection>.Is(connection); // Did not work
Ctor<IConnection>.Is( i => i.GetInstance<IConnection>("Connection") );
}
}
Я даже пытался объявить IConnection как Singleton ("For <> (). Singleton ()"), но этоТ тоже не поможет.Я использую StructureMap 2.6.1.
Есть идеи?