我有一个接口IConnection,由TcpConnection实现。此外,两个类将IConnection作为参数接受,我希望使用同一个TcpConnection实例。
问题是它似乎不起作用。无论我尝试了哪种方法,TcpConnection都会被创建多次。这是我正在使用的Registry子类:
我甚至尝试将IConnection声明为Singleton(“For<>().Singleton()”),但这也没有帮助。我正在使用StructureMap 2.6.1。
有什么想法吗?
问题是它似乎不起作用。无论我尝试了哪种方法,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。
有什么想法吗?