StructureMap例外コード:202デフォルトインスタンスが定義されていません

StackOverflow https://stackoverflow.com/questions/1201188

質問

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のインスタンスを取得しようとすると例外が発生します。

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

乾杯

オリー

役に立ちましたか?

解決

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

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

Ta

オリー

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top