5

StructureMap-MVC3パッケージを ASP.NET MVC アプリケーションに追加すると、以下をIoC含むメソッドを含むクラスInitializeが追加されます (App_Start フォルダー内のコードによって呼び出されます)。

public static class IoC
{
    public static IContainer Initialize()
    {
        ObjectFactory.Initialize(x =>
            {
                x.Scan(scan =>
                    {
                        scan.TheCallingAssembly();
                        scan.WithDefaultConventions();
                    });
                // x.For<IExample>().Use<Example>();
            });
        return ObjectFactory.Container;
    }
}

scan.TheCallingAssembly()andscan.WithDefaultConventions()コードの目的は何ですか? StructureMap のドキュメントには、これらのメソッドの適切な説明がありません。

MVC 以外のプロジェクトで StructureMap を使用すると、x.Scanセクション全体を削除しても影響がないことがわかりました。

4

1 に答える 1

7

スキャンは、アセンブリで定義されているすべての型を調べ、StructureMap 規則を適用して、それらをコンテナーに登録する必要があるかどうか、またはどのように登録するかを決定します。

WithDefaultConventions意味: 「スキャン中に interface が見つかり、を実装IExampleする型があれば、その既定の型として登録する」.ExampleIExampleExampleIExample

多くの場合、探しているものをコンテナに問い合わせることができ ( IExample)、それ以上の構成を行わなくても実装が返されます。

于 2012-05-16T14:39:29.037 に答える