gpt4 book ai didi

asp.net-mvc - 为什么 ASP.NET MVC Controller 类需要公开?

转载 作者:行者123 更新时间:2023-12-04 15:10:59 24 4
gpt4 key购买 nike

当我对 Controller 类的访问修饰符进行更改时,会导致错误。如果我将操作方法​​的可访问性设为非公开,那么它也会导致错误(特别是找不到页面错误)。为什么会这样?

最佳答案

默认情况下,如果您没有为类指定任何访问修饰符,那么它将默认为 internal在 C# 中。只有同一程序集中的代码才能访问 internal 的类.所以如果你的 Controller 是 internal ,在收到请求时创建 Controller 实例的代码必须在您的程序集中。

但是 Controller 创建代码存在于 System.Web.Mvc组装和默认 DefaultControllerFactory负责创建 Controller 。例如,如果您的代码存在于 MvcApplication1 程序集中,则 DefaultControllerFActory 无法在没有公共(public)访问修饰符的情况下找到您的 Controller 类,因此无法实例化它们。

如果你想构建一个紧密耦合的 ASP.NET MVC 应用程序(它不是为它设计的),那么理论上你可以按照以下方式进行。

  • 获取 MVC 源代码(如果可用)。
  • 然后在同一个程序集中构建您的代码。
  • 关于asp.net-mvc - 为什么 ASP.NET MVC Controller 类需要公开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27457287/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com