我有时会定义Business Logic类来“帮助”我的ASPX代码隐藏类。由于它们协同工作,因此将它们包含在代码隐藏文件中对我来说是最有意义的。但是,我偶尔会喜欢从App_Code中定义的更高级别的类访问Business Logic类,但它们不能在文件外自动访问。
因此,问题是:访问App_Code中定义的类很容易,但如何访问其他地方定义的类?
更新:另一件事,ASPX页面类和App_Code类在同一名称空间中 - 这不是问题。
注意:我已经接受了那些已经回复的人的建议(谢谢你们)并且我正在重构以使类访问更容易。但是,我认为这个问题实际上还没有得到解答(在ASP.NET网站项目的情况下)。我不再需要答案,但是,如果有人能够澄清什么使得课程在App_Code之外时可见,那么它可能会帮助其他人(甚至是我,在路上)。 / p>
答案 0 :(得分:5)
确保将类放在合理的命名空间中。
在您要访问的文件后面的代码中放置'using'关键字。
或者<%@ import如果您在内联代码中使用它们。
将包含您的类的dll放在/ bin文件夹中。
TBH我更喜欢将单独的库项目保留在同一个解决方案中,并在Web项目中包含项目引用。 VS处理为你构建和放置dll。
答案 1 :(得分:2)
有些时候,当你创建或添加任何文件时,它已被创建为内容文件,而它必须是编译文件。
请按照流程解决此问题。
1)右键单击App_Code文件夹中的类文件。 2)单击属性。 3)将构建操作从“”更改为编译 4)重建你的应用程序。
Tushar Tyagi
答案 2 :(得分:1)
我假设您的意思是在codebehind .cs文件中定义一个单独的类?你给他们什么样的访问修饰符?
如上所述,我通常在解决方案中有一个单独的项目(通常在MyApp.Web和MyApp等不同的命名空间中),并从那里引用它。
答案 3 :(得分:0)
您也可以在项目中创建一个标准文件夹来访问类,并将它们移动到那里,但您必须做一些额外的事情才能使项目可以访问:
答案 4 :(得分:-2)
您无法从文件后面的同一代码中的另一个类访问类.net dsnt支持多重继承。但是你可以在主类中创建业务逻辑类作为内部类,并将其所有函数公开,以便可以在主类中调用它们。