我在 asp.net mvc 5 应用程序中使用 StructureMap,我有很多服务,并且对于每个服务我都有一个接口和一个类,例如我有一个 IUserService 和一个 UserService,这些接口位于不同的命名空间中与实际的服务类相比,接口位于命名空间“Services.Interfaces”中,服务类位于命名空间“Services”中,StructureMap 可以很好地找到接口的服务,但是当我想通过使用显式获取实例时
var container = Ioc.Initialize();
var userService = container.GetInstance<IUserService>();
我收到错误消息“未注册默认实例,无法自动确定类型“Services.Interfaces.IUserService”
为什么只有在调用 GetInstance 时才会发生这种情况,我该如何解决?
我正在使用这样的默认配置:
public static class IoC {
public static IContainer Initialize() {
return new Container(c => c.AddRegistry<DefaultRegistry>());
}
}
public DefaultRegistry() {
Scan(
scan => {
scan.TheCallingAssembly();
scan.WithDefaultConventions();
scan.With(new ControllerConvention());
});
//For<IExample>().Use<Example>();
}