确保控制器在 Unity 中具有无参数公共构造函数

2023-11-22

我在控制器上遇到了这个问题:
尝试创建类型为 ' 的控制器时发生错误*.WebMvc.Controllers.HomeController'。确保控制器具有无参数公共构造函数。

找到了ApiController的解决方案,但是没有找到关于普通Controller的任何内容。

从头开始创建新的 MVC 4 项目。

HomeController.cs:

public class HomeController : Controller
{
    private IAccountingUow _uow;
    public HomeController(IAccountingUow uow)
    {
        _uow = uow;
    }

UnityDependencyResolver.cs:

public class UnityDependencyResolver : IDependencyResolver
{
    private IUnityContainer _container;
    public UnityDependencyResolver(IUnityContainer container)
    {
        _container = container;
        RegisterTypes();
    }
    public object GetService(Type serviceType)
    {
        try
        {
            return _container.Resolve(serviceType);
        }catch
        {
            return null;
        }
    }

    public IEnumerable<object> GetServices(Type serviceType)
    {
        try
        {
            return _container.ResolveAll(serviceType);
        }catch
        {
            return null;
        }
    }

    private void RegisterTypes()
    {
        _container.RegisterType<IAccountingUow, AccountingUow>();

    }
}

全局.asax

    protected void Application_Start()
    {
        //Omitted
        DependencyResolver.SetResolver( new UnityDependencyResolver( new UnityContainer()));

    }

调试发现,甚至没有尝试解析IAccountingUow。

我做错了什么? 一整天都在思考这个问题。


找到问题出在哪里了。也许有人会面临同样的情况。 问题是Unity无法解决IAccountingUow,因为接口的层次依赖性。

AccountingUow班级有两名指挥

    public AccountingUow( IRepositoryProvider repositoryProvider)
    {
        Init(repositoryProvider);
    }
    public AccountingUow()
    {
        Init( new RepositoryProvider(new RepositoryFactories()) );
    }

依赖解析器不够智能,无法采用默认的无参数构造函数。它尝试采用接口相关的构造函数,但无法解析它,因为没有解析它的规则。

我注释掉了接口相关的构造函数,一切正常。

我稍后会发布第一个构造函数的解析器,也许有人会使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

确保控制器在 Unity 中具有无参数公共构造函数 的相关文章

随机推荐

  • 删除 Excel 单元格中的换行符、回车符和所有前导空格

    我不知道发生了什么 但我的单元格中包含似乎是回车的东西 我努力了TRIM CLEAN SUBSTITUTE A1 CHAR 10 以及一些用于删除这些字符的宏 删除这些字符的唯一方法是使单元格处于活动状态 单击最后一个字符附近的删除 然后单
  • React Native + Redux Form - 使用键盘下一个按钮转到下一个 TextInput 字段

    我在用着回归形式 RF 在 React Native 应用程序中 一切正常 但我不知道如何获得refs来自Field输入以使用 Redux Form 转到下一个输入字段 不带射频this解决方案会很好地工作 这是我的代码 class Ren
  • 无法通过套接字“/var/mysql/mysql.sock”连接到本地 MySQL 服务器 (38)

    我在尝试连接 mysql 时遇到了一个大问题 当我跑步时 usr local mysql bin mysql start 我有以下错误 Can t connect to local MySQL server through socket v
  • 如何获取频率然后将其作为变量添加到数组中?

    假设我有一个这种格式的数组 X Y Z A 1 0 A 2 1 B 1 1 B 2 1 B 1 0 我想找到给定X的X的频率和Y的频率 然后将它们添加到数组中 X Y Z F x F Y X A 1 0 2 1 A 2 1 2 1 B 1
  • 包含 Visual Studio 测试运行程序集的目录无效

    我们已将 TFS 安装从 2012 年升级到 2013 年 运行我们的构建时 如果启用单元测试 它们将失败并出现以下错误 TF900547 The directory containing the assemblies for the Vi
  • “ref”使用的实用示例[关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我正在努力如何在实际应用程序中使用 ref 通过引用传递参数 我想要一个简单且主要有意义的例子 到目前为止 我发现的所有内容都可以通过向方法添加返回类型来轻松重做 有人知道吗 谢
  • Ruby Gemspec 中的条件依赖

    我正在构建一个 gem 需要安装 json gem 才能正常工作 哪种 json gem 并不重要 json pure json jruby 或基于 C 的 json 有没有在 gemspec 中定义这个的好方法 这个回应建议为每个版本维护
  • PhantomJS - 上传文件而不提交表单

    是否可以使用 PhantomJS 将文件上传到某个页面而无需手动提交表单 我认为使用内容类型 multipart form data 是可能的 上的例子https github com ariya phantomjs blob master
  • 访问 dplyr 中的分组数据

    从 dplyr 应用 group by 函数并使用 运算符后 如何访问分组数据 例如 如果我想要每个分组数据的第一行 那么我可以使用 plyr 包来执行此操作 ddply iris Species function df df 1 outp
  • Flask 会话如何工作?

    我很好奇 Flask 会话是如何工作的 特别是它如何在服务器重新启动之间存储信息 如果我错了 请引用我的话 我知道你必须设置一个独特的app secret key因此人们无法以任何方式解密会话并修改 cookie 因为会话的 cookie
  • 将数组中的空值替换为零值

    我有一个数组 我需要删除空值并将其替换为零 我已经取得了这么多成就 当我检查数组长度为 8 但它只显示 2 个元素时 用零替换它的最佳方法是什么 var a a 3 5 a 5 15 console log a length 6 conso
  • 获取相关实体 ASP.NET WebApi OData v4 导致“未找到与请求 URI 匹配的 HTTP 资源”

    我跟着Mike Wasson 的这个 ASP NET 教程 并设法很好地设置了相关实体 但是当我将此逻辑应用于我的项目时 更复杂的实体关系 因为实体关系更多 这是唯一的区别 在 OData 调用中不会成功 我收到带有此有效负载的 404 e
  • 找不到模块 FBSDKCoreKit Cocoapods

    我正在尝试使用 CocoaPods 使用 use frameworks 将 facebook 集成到我的应用程序中 标签 并根据 Facebook 的此处说明 还包括吊舱螺栓 当我尝试使用时import FBSDKCoreKit在我的 ap
  • 代理与自然/业务密钥[关闭]

    Closed 这个问题是基于意见的 目前不接受答案 又来了 老争论依然出现 我们是否最好将业务键作为主键 或者我们宁愿使用对业务键字段具有唯一约束的代理 ID 即 SQL Server 标识 请提供例子或证据来支持你的理论 使用代理键的几个
  • 按连接值对 R 数据帧进行分组

    我没有找到 R 中这个常见分组问题的解决方案 这是我的原始数据集 ID State 1 A 2 A 3 B 4 B 5 B 6 A 7 A 8 A 9 C 10 C 这应该是我分组的结果数据集 State min ID max ID A 1
  • SVN 术语 - 签出、工作副本、属性、存储库

    当我尝试学习如何使用时svn externals 我很难理解这些术语的差异 它们有何不同 工作副本 and checkout 有时构建是有用的工作副本这是由许多不同的结账 source property 在 Subversion 中 您可以
  • 哪个性能更好: test != null 或 null != test [重复]

    这个问题在这里已经有答案了 考虑以下两行代码 if test null and if null test 从性能角度来看 上述两种说法有什么区别吗 我见过很多人使用后者 当被问及时 他们说这是最佳实践 但没有充分的理由 没有不同 第二个原因
  • 导入web3到next js会报错

    我正在使用 next js 和 Material ui 构建一个用于学习的演示 dapp 我已经安装了元掩码 到目前为止我只能设置一个 连接到钱包 按钮 我陷入了必须导入 Web3 构造函数的困境 我的代码如下所示 我的包 json 的屏幕
  • 如何删除文件最后一行的最后一个字符? [复制]

    这个问题在这里已经有答案了 我在一个文件中有这组行 info info info info 我想要这样的文件 没有最后一个 info info info info 我怎样才能在 bash 中做到这一点 任何想法 您可以使用sed sed s
  • 确保控制器在 Unity 中具有无参数公共构造函数

    我在控制器上遇到了这个问题 尝试创建类型为 的控制器时发生错误 WebMvc Controllers HomeController 确保控制器具有无参数公共构造函数 找到了ApiController的解决方案 但是没有找到关于普通Contr