2

SM で以下を登録してからインスタンスを作成しようとすると、「StructureMap Exception Code: 202 No Default Instance defined for PluginFamily...」という例外が発生します。

Scan(x =>
        {
            x.Assembly("MVCDemo");
            x.Assembly("MVCDemo.Infrastructure");
            x.Assembly("MVCDemo.Services");

            x.AddAllTypesOf(typeof (IRepository<>));
        });

        ForRequestedType<IRepository<Employee>>().TheDefault.Is.ConstructedBy(() => new EmployeeRepository());


 var tmp4 = ObjectFactory.GetInstance<IRepository<Employee>>();

IRepository のインスタンスを取得しようとすると、例外が発生します。

私が欠けているものを誰かが知っていますか?

乾杯

オリー

4

2 に答える 2

5

答えは、ObjectFactory を使用してインスタンスを作成するべきではなく、コンテナーを使用する必要があるということです。

var container = new Container(new MvcDemoRegistry());
var cultureProvider = container.GetInstance<IProvideCultureInfo>();

オリー

于 2009-07-30T13:08:04.917 に答える
2

IoC と DI を使用する場合、コンテナーを使用してインスタンスを取得することは想定されていません。コンストラクター注入を使用し、IoC に注入を処理させる必要があります。

于 2011-06-15T16:00:06.017 に答える