2

当我在 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 的实例时发生异常。

有谁知道我错过了什么?

干杯

奥利

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 回答