C#

时间:2017-01-16 04:21:25

标签: c# .net access-modifiers

我知道这是一个非常基本的问题,但我只是C#的新手。我知道C#中类的默认访问修饰符是" internal"这意味着在同一个组件中可用。但是,我们说我在模型中有两个公共(更多可访问性)类员工和部门,所以他们不需要互相参考,足够公平。但是我在控制器中也是一个DepartmentController和EmployeeController,我需要引用类Employee和Departments,但是不是DepartmentController,EmployeeController Employee和Departments在同一个程序集中,这是项目名称吗?

这是该计划的图片: enter image description here

2 个答案:

答案 0 :(得分:0)

您需要引用这些类,因为它们不在同一名称空间中(MVCDemo。控制器!= MVCDemo。模型)。如果通过导入其程序集将这些类导入到另一个项目的范围中,您将只能看到公共类,而不是内部。我强烈建议您尝试将模型移动到类库项目并使用其访问修饰符来更好地理解其范围含义(例如尝试使用另一个程序集导入内部类)。

答案 1 :(得分:0)

是的,您的解决方案只有一个项目,而且您的项目只有一个程序集。

这里解释了您需要在控制器上使用公共访问修饰符的原因......

Why does the ASP.NET MVC Controller class need to be public?

基本上,您引用的MVC框架需要访问控制器,以便框架使用它们,如果它们是内部的MVC框架将无法访问您的控制器。

虽然您的解决方案中有一个项目,但您引用了许多其他程序集。项目中需要由另一个程序集访问的任何内容,无论是从您的某个项目创建的程序集还是您引用的程序集,都需要具有公共访问修饰符。