StructureMap在另一个名称空间

时间:2017-04-19 18:09:25

标签: c# asp.net asp.net-mvc structuremap4

我在asp.net mvc 5应用程序中使用StructureMap,我有很多服务,每个服务我都有一个接口和一个类,所以例如我有一个IUserService和一个UserService,接口与实际服务类位于不同的命名空间中,接口位于命名空间“服务。接口”中。并且服务类位于命名空间' Services',StructureMap可以很好地找到接口的服务,但是当我想通过使用

显式获取实例时

var container = Ioc.Initialize(); var userService = container.GetInstance<IUserService>();

我收到错误&#39;没有注册默认实例,无法自动确定类型&#39; Services.Interfaces.IUserService&#39;

为什么只在调用GetInstance时才会发生这种情况?我该如何解决这个问题?

我使用这样的defalt配置:

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

0 个答案:

没有答案