我有一个接口iconnection,由tcpconnection实现。另外,有两个类接受iconnection作为参数,我想为此使用tcpconnection的同一个实例。问题是它似乎不起作用。我尝试的每种方法都会多次创建tcpconnection。这是我正在使用的注册表子类: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()”),但这也没有帮助。我用的是结构图2.6.1。有什么想法吗? (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 For<IConnection>().Singleton().Add<TcpConnection>().Named("Connection");For<IFoo>().Add<Foo>().Ctor<IConnection>().Is(i=>i.GetInstance<IConnection>("Connection"));For<IBar>().Add<Bar>().Ctor<IConnection>().Is(i=>i.GetInstance<IConnection>("Connection"));当我使用上面的代码时,在foo和bar中有相同的连接实例。我也厌倦了一些命名的连接。Foo和Bar仍然有他们认为的联系。 (adsbygoogle = window.adsbygoogle || []).push({}); 07-24 20:32