Web 应用程序中的方法应该是 public 还是内部方法?

Should methods in a web app be public or internal?

在 Web 应用程序的范围内,将方法的可访问性声明为 publicinternal 的含义是什么?

Web 应用程序通常包含仅在应用程序本身内使用的方法。例如,电子商务网站可能包含检索用户订单历史记录的方法。沿着:

public List<Orders> RetrieveOrders() {
    //code goes here
}

如果此方法包含在 class 库中,则 publicinternal 访问修饰符的重要性相当简单; public 方法可以在库本身之外访问,内部方法则不能。

在 Web 应用程序方面有任何实际差异吗?

编辑: 有人建议我的问题与 What is the difference between Public, Private, Protected, and Nothing? 重复。我不是要解释访问修饰符。我想问的是,对于 网站 中的方法,访问修饰符是否有任何意义。

通常 public 应仅限于外部可见的方法 - 这包括 public API 和由于技术限制而必须公开的方法(即 classes ASP.Net 页)。

对于 Web 应用程序,通常没有 "public API",因为此类库通常不会被外部用户使用。

因此,对于 Web 应用程序开发,internalpublic 之间在大多数情况下没有实际差异。仅使用 public 会带来一些小便利,因为您不再需要 InternalsVisibleTo 单元测试属性。

更多讨论:public vs. internal methods on an internal class, internal vs public in c#

旁注:ASP.Net MVC 网站是一个 class 库 - 因此所有关于与 class 库相关的访问修饰符的讨论都适用于 ASP.Net MVC/WebAPI 网站。