Exception StructureMap异常代码:202未定义默认实例

Exception StructureMap异常代码:202未定义默认实例,exception,registry,structuremap,dsl,Exception,Registry,Structuremap,Dsl,当我在SM中注册以下内容,然后尝试创建一个实例时,我得到一个异常——“StructureMap异常代码:202没有为PluginFamily定义默认实例…” Scan(x => { x.Assembly("MVCDemo"); x.Assembly("MVCDemo.Infrastructure"); x.Assembly("MVCDemo.Services"); x.AddA

当我在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>>();
扫描(x=>
{
x、 大会(“MVCDemo”);
x、 组装(“MVCDemo.Infrastructure”);
x、 装配(“MVCDemo.Services”);
x、 AddAllTypesOf(typeof(IRepository));
});
ForRequestedType()。默认值是由(()=>new EmployeeRepository())构造的;
var tmp4=ObjectFactory.GetInstance();
当我尝试获取IRepository的实例时,会发生异常

有人知道我错过了什么吗

干杯


Ollie

答案是我不应该使用ObjectFactory创建实例,我应该使用容器:

var container = new Container(new MvcDemoRegistry());
var cultureProvider = container.GetInstance<IProvideCultureInfo>();
var container=newcontainer(new mvcdemorgistry());
var cultureProvider=container.GetInstance();
助教


Ollie

在使用IoC和DI时,不应该使用容器来获取实例。您应该使用构造函数注入,并让IoC为您处理注入