私はTcpConnectionによって実装されたIConnectionインターフェイスを持っています。さらに、2つのクラスはIConnectionをパラメータとして受け取ります。そのために同じインスタンスのTcpConnectionを使用したいと思います。StructureMapで同じインスタンスを挿入
問題は動作していないようです。試したすべての方法で、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を宣言しようとしたが、それはどちらか助けていない:ここでは私が使用しているレジストリサブクラスです。私はStructureMap 2.6.1を使用しています。
アイデア?
最後を参照してください私のポストの、私はすでにシングルトンを使ってみました。他のオブジェクトには他の接続が必要なので、私の場合は "Use <>()"を使用できません。 – kshahar
試した例で私の投稿を編集しました – Bassetassen
ありがとう、私は私のために働く(基本的に同じ、ちょうどHybridHttpOrThreadLocalScopedとシングルトンを置き換える)ソリューションを投稿したいのですが、あなたのソリューションも同様に動作します。 – kshahar