1

なぜStructureMapを離れるのですか?

Jeremy Miller(StructureMapの背後にいる男)が述べたように: Silverlightのサポートはありません

なぜSilverlightのサポートが必要なのですか?

WindowsPhoneアプリを書き始めているので、これが必要なようです。

この質問の目的は?

StructureMapが大好きです。それは機能でいっぱいで、私は私のプロジェクトの多くにそれを使用しています。しかし、私は新しいものを選ばなければなりません。どちらを選ぶべきですか?

AutoFac?

注入しますか?

他のツール?

新しいフレームワークに何が欲しいですか?

WindowsPhoneのサポート。

現在、 StructureMapを使用してシングルトンの依存関係を次のように登録しています。

ObjectFactory.Configure(Function(config)
config.For(Of TPlugin).Singleton.Use(Of TConcrete)())

またはこれ(ジェネリック型の場合):

ObjectFactory.Configure(Function(config)
config.For(Of GetType(IRepository(Of ))).Use(Of GetType(Repository(Of )))())

または転送タイプ:

ObjectFactory.Configure(Sub(config) config.Forward(Of TResolveBy, TRequested)())

StructureMap(またはより良い構文)に近い構文で同じことをしたい

私はあなたに何が欲しいですか?

彼らとの経験はありますか?

あなたはどちらを好みますか?

Windows Phoneアプリでの使用をお勧めするのはどれですか?

他に何か提案はありますか?

アップデート:

ライフサイクル具体的な型の初期化(型を定義するだけでなく関数を使用)はどうですか?StructureMapの場合:

config.For(pluginType).Singleton.Use(concreteType)

また

config.For(Of TPlugin).HybridHttpOrThreadLocalScoped.Use(SomeFunction)
4

4 に答える 4

1

しばらく前に調査して、使用するDIフレームワークを決定したところ、多くの人がNinjectを好むようでした。それ以来ずっと使っていて、大好きです。Remo Gloorは、Remo Gloorとそのさまざまな拡張機能で非常に優れた作業を行っており、数日前にNinject3にアップグレードしました。

バインディング構文は非常に単純です。私は通常NinjectModuleサブクラスを使用して、(C#で)次のように言います。

Bind<TPlugin>().To<TConcrete>()

...これはあなたが今していることとかなり似ていると私は信じています。

于 2012-06-27T19:21:29.510 に答える
1

Caliburn Micro に同梱されている SimpleContainer を使用しています。 IOCバトル - 再訪

更新: SimpleContainer 用の個別のnugetパッケージもあります。

于 2012-06-28T03:04:56.290 に答える
1

私はNinjectをお勧めします。私はすべてのプロジェクトで主に自動バインディング機能を使用しています。これにより、明示的な構成なしでインターフェースとその実装を自動的にまとめることができます (サンプルのように) - 例はhereにあります。

また、コード サンプルと同様に手動構成を使用することもできます。例については、Ninject のドキュメントを参照してください。

Silverlightにも対応しているようですので、使い勝手は良さそうです。

編集:

StriplingWarrior のコメントによると、最近のバージョンの Ninject では自動バインド構文の動作が変更されています。詳細については、この SO の質問をご覧ください。

于 2012-06-27T19:23:43.253 に答える
0

IoCツールが必要なのは誰ですか?FactoryおよびAbstractFactoryパターンは簡単で素晴らしいものであり、テクノロジーXYZをサポートしているかどうか疑問に思う必要はありません。

于 2012-06-28T03:23:47.473 に答える