首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用统一发布解决依赖项

使用统一发布解决依赖项
EN

Stack Overflow用户
提问于 2013-07-27 13:38:24
回答 2查看 1K关注 0票数 3

一旦我试图解决我的unitOfWork,我就会得到以下错误:

“类型IUnitOfWork没有可访问的构造函数。”

但是,只有当我将unitOfWork的unitOfWork设置为PerResolveLifetimeManager时才会发生这种情况。如果我只是使用默认的,一切都很好。我的unitOfWork,确实有一个公共的无参数构造函数。这是我的密码:

代码语言:javascript
运行
复制
//Global asax
IUnityContainer unity = new UnityContainer();
unity.RegisterType<HomeController>();
unity.RegisterInstance<IUnitOfWork>(new UnitOfWork(), new PerResolveLifetimeManager()); 
ControllerBuilder.Current.SetControllerFactory(new IocControllerFactory(unity));

//IocControllerFactory 
public class IocControllerFactory : DefaultControllerFactory
{
    private readonly IUnityContainer _container;

    public IocControllerFactory(IUnityContainer container)
    {
        _container = container;
    }

    protected override IController GetControllerInstance(RequestContext requestContext, Type controllerType)
    {
        if (controllerType != null)
            return _container.Resolve(controllerType) as IController;
        else
            return base.GetControllerInstance(requestContext, controllerType);
    }
}

//Home controller constructor
public HomeController(IUnitOfWork unitOfWork)
{
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-27 14:01:26

在调用RegisterInstance方法时,您可以指定下列在生命周期管理器中内置的类型之一或自定义类型:

  1. ContainerControlledLifetimeManager
  2. ExternallyControlledLifetimeManager
  3. HierarchicalLifetimeManager

注意:不适合在RegisterInstance中使用PerResolveLifetimeManagerTransientLifetimeManager,因为它们都在每个要解决的调用上创建一个新实例。

取自Unity2.0上的正式文件,请查看关于使用RegisterInstance方法的生命时间管理器的部分。

票数 3
EN

Stack Overflow用户

发布于 2014-09-10 11:12:57

当您想要注册一个具有统一对象的现有对象时,使用RegisterInstance --当对此类型有请求时,返回相同对象的实例(而不是新的对象)。默认情况下,RegisterInstance方法具有ContainerControlledLifetimeManager,它通过容器的生存期来管理一个实例。

在PerResolveLifetimeManager的情况下,每次请求解析时,都会创建一个新的对象实例。

因此,当您尝试使用PerResolveLifetimeManager和RegisterInstance时,会向您抛出Method.The错误。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17898433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档