私はそれが高速であることをオートファックについて読んだことがあります。私はコーディングが関わっていることを見てきました。しかし、私はそれをどのように使用するかについてはあまりよく分かりません。私はStructureMapを使用しましたが、静的なObjectFactoryを持っています。 Ninjectカーネルを持っていますが、彼らはこのような何かやってお勧めautofacのGoogleのページに:、オートファックのメリットとデメリット
using(var resolver = builder.Build()){
var whatINeed = resolver.Resolve<INeedThisService>();
}
をこれは、WinFormsのアプリですので、私は上記をやってから、無効なオブジェクトの状態を得たので、私はグローバルいるIContainerを有することにswichedこのようにしました
using(var resolver = Program.Container.CreateInnerContainer())
{
var whatINeed = resolver.Resolve<INeedThisService>();
}
私はこれを約3〜5回使いました。しかし、それは不完全ですか?または私はちょうど
var whatINeed = Program.Resolve<INeedThisService>()
と
internal static TServervice Resolver<TService>(){
if(_container == null) _container = builder.Build();
return _container.Resolve<TService>();
}
WICHは、使用、そしてなぜでしょうカバーの下のような何かを行う必要があります。また、CreateInnerContainer()での作業には不利益がありますか?
私はどのように知っていますIoCを使用すると、私は自分のサービスにアクセスするためのフレームワークのガイドラインにあったものを望んでいました。 StructureMapは明確なソリューションです。ObjectFactoryを使用するだけです。しかし、Autofacではそれほど明確ではないので、すべてのコンポーネントを再登録する必要はありません。 –
すべてのコンポーネントを「再登録する」という意味を説明できますか?アセンブリ内のすべてのタイプの自動登録をお探しですか?その間にStructureMapのObjectFactoryを見ていきます。 –
再登録とは、IContainerを再生成する部分を再度実行することを意味します。問題は、using(..)ステートメントでIContainerを実行する場合、IContainerを保持する方法でした。 –