当我在SM中注册以下内容然后尝试创建实例时,我得到异常 - 'StructureMap异常代码:202没有为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