0

我在 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>();
        }
4

0 回答 0