当我在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的实例时会发生异常。
有谁知道我错过了什么?
干杯
奥利
答案 0 :(得分:5)
答案是我不应该使用ObjectFactory来创建实例,我应该使用容器:
var container = new Container(new MvcDemoRegistry());
var cultureProvider = container.GetInstance<IProvideCultureInfo>();
TA
奥利
答案 1 :(得分:2)
使用IoC和DI时,不应该使用容器来获取实例。您应该使用构造函数注入并让IoC为您处理注入。