代码之家  ›  专栏  ›  技术社区  ›  AwkwardCoder

结构映射异常代码:202未定义默认实例

  •  2
  • AwkwardCoder  · 技术社区  · 15 年前

    当我在sm中注册以下内容,然后尝试创建实例时,我得到了异常-“structuremap exception code: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实例时,会发生异常。

    有人知道我错过了什么吗?

    干杯

    奥利

    2 回复  |  直到 13 年前
        1
  •  5
  •   AwkwardCoder    15 年前

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

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

    助教

    奥利

        2
  •  2
  •   BradLaney    13 年前

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