この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 21356|答える: 1

[出典] IoC効率的なオートファック

[リンクをコピー]
掲載地 2016/09/13 13:14:12 | | |
IoC ~ 効率的なオートファック

Microsoftが好んでいるIoCコンテナは spring.net unityではなくAutofacであることは間違いありません。その効率性とシンプルさからです。そのため、Microsoft主導の果樹園プロジェクトにも使われています

オートファックの使用例を示しています。


ここでこう呼びましょう:

次の講義では、オーチャードプロジェクトの特定のプロジェクトにおけるAutofacの使用についてお話しします。

次にそのライフサイクルを見てみましょう

1、インスタンス依存関係

各依存関係や呼び出しごとに新しいユニークなインスタンスを作成します。 これはインスタンス作成のデフォルト方法でもあります。

公式ドキュメントにはこう説明されています:すべての依存コンポーネントまたはResolve()への呼び出しが新しく一意のインスタンス(デフォルト)を割り当てられるようにコンポーネントを設定すること。

2、インスタンスパーライフタイムスコープ

ライフサイクルドメインでは、各依存関係や呼び出しが単一の共有インスタンスを作成し、異なるライフサイクルドメインごとにインスタンスは一意であり共有されません。

公式ドキュメントによると:単一のILifetimeScope内のすべての依存コンポーネントやResolve()呼び出しが同じ共有インスタンスを持つようにコンポーネントを設定すること。 異なるライフタイムスコープの従属コンポーネントは異なるインスタンスを持ちます。

3、InstancePerMatchingLifetimeScope

特定されたライフサイクルドメインでは、各依存関係や呼び出しが単一の共有インスタンスを作成します。 親ドメインのインスタンスは、識別されたライフサイクルドメインの子識別ドメインで共有できます。 継承階層全体に特定されたライフサイクルドメインが見つからない場合、例外がスローされます:DependencyResolutionException。

公式ドキュメントにはこう説明されています:ILifetimeScope内の任意のタグ値を持つ依存コンポーネントやResolve()呼び出しが同じ共有インスタンスを持つようにコンポーネントを設定すること。 タグ付けされたスコープの子であるライフタイムスコープ内の依存コンポーネントは、親のインスタンスを共有します。 階層に適切にタグ付けされたスコープが見つからない場合は、DependencyResolutionExceptionが投げられます。

4、インスタンスパーオード

ライフサイクルドメインに所有されるインスタンスによって作成されたインスタンスのライフサイクルでは、各依存コンポーネントやResolve()メソッドへの呼び出しが単一の共有インスタンスを作成し、子ライフサイクルドメインは親ライフサイクルドメインのインスタンスを共有します。 継承階層に子インスタンスを含む適切なライフサイクルドメインが見つからない場合、例外がスローされます:DependencyResolutionException。

公式文書には次のように説明されています:

所有されたインスタンスによって作成されたILifetimeScope内のすべての依存コンポーネントやResolve()呼び出しが同じ共有インスタンスを受け取るようにコンポーネントを設定してください。 所有されたインスタンススコープの子であるライフタイムスコープの従属コンポーネントは、親のインスタンスを共有します。 階層構造に適切な所有インスタンススコープが見つからない場合は、DependencyResolutionExceptionがスローされます。

5、SingleInstance

コンポーネントに依存したりResolve()メソッドを呼び出すたびに、同じ共有インスタンスが返ってきます。 実際には単一モデルです。

公式ドキュメントにはこう説明されています:すべての依存コンポーネントまたはResolve()への呼び出しが同じ共有インスタンスを受け取るようにコンポーネントを設定すること。

6、InstancePerHttpRequest

Httpリクエストの文脈では、コンポーネントのインスタンスを共有します。 MVC開発 asp.net のみ利用可能です。





先の:MVCのActionResult
次に:ConcurrentDictionary vs. Dictionary+Locking - Dennis Gao
 地主| 掲載地 2016/09/13 13:15:50 |
Nugetの設置方法:

Autofac をインストールする

Install-Package Autofac
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com