1

私は StructureMap を使用しようとしていますが、本質的に 3 レベルの抽象化があります。リポジトリとデータベース インターフェイスのサービスがあります。したがって、IService は IRepo に依存し、IRepo は IDatabase に依存します。私の問題は、私の IDatabase 具象型がデータベース接続情報を取り込むことです。ObjectFactory.Configure() を使用して、これらをオンザフライで作成します。

したがって、ユーザーがいて、ユーザーは会社にリンクされており、会社の接続情報を検索し、この情報に基づいて適切な IDatabase 具象型を作成したいと考えています。スタートアップ コードで具象型を構成しました。外部から IService オブジェクトのみを使用したいので、会社名で名前を付けた名前付き IService オブジェクトを作成したいと考えています。これらのタイプをその場で作成しようとすると問題が発生します。どんな情報でも役に立ちます...

私は基本的に、具体的な型を知らなくても、名前付きインスタンスを作成し、実行時にプロパティを設定するか、特定の引数をコンストラクターに渡すことができるようにしたいと考えています。構成ファイルに具体的なタイプのセットアップがあります。ObjectFactory.GetInstance を使用しようとし、Configure メソッド内でプロパティを設定しようとしましたが、StackOverflow 例外が発生しました...どのように皮肉なのか

4

2 に答える 2

0

Jeremy Miller(StructureMapの作者)からの指示で答えを見つけました。これが彼が私に指摘したところです:

http://structuremap.sourceforge.net/RetrieveingServices.htm#section5

これが私が使用したものの例です:

IDatabaseRepository repo =
                ObjectFactory.With("server").EqualTo("servername").
                With("database").EqualTo("dbName").
                With("user").EqualTo("userName").
                With("password").EqualTo("password").
                GetInstance<IDatabaseRepository>();
于 2009-02-25T14:01:42.177 に答える
0

Structuremap の ObjectFactory が名前付きインスタンスの注入をサポートしているようには見えません

于 2012-12-19T21:19:10.697 に答える