@Register 和 @Import 之间有什么区别呢?什么地方最适合由 ASP.NET 应用程序使用的非系统程序集 DLL?

来源:互联网 发布:自动发布软件 编辑:程序博客网 时间:2024/04/28 11:21

首先,ASP.NET 应用程序是 .NET 应用程序。因而,它们需要链接到包含计划使用的对象的任何程序集。@Register 指令就是用于解决这个问题的。您在页面注册的任何程序集稍后将作为引用传递到所选择的编译器。@Import 指令的作用不是很重要,因为它的功能是简化编码。利用 @Import,您可以导入命名空间,而不是程序集。程序集可以包含更多命名空间。例如,程序集 system.data.dll 包含 System.DataSystem.Data.OleDbSystem.Data.SqlClient 等等。

通过导入命名空间,您可以编写更简单的代码,因而无需指定到给定对象的完整路径。通过导入 System.Data,您可以通过类 DataSet 而不是 System.Data.DataSet 使用数据集。要使用数据集,您不必使用 @Import 指令,但不能缺少对 system.data.dll 的引用。

具体地说,对于 ASP.NET 应用程序,您无需显式注册 Global Assembly Cache (GAC) 中提供的任何程序集。使用 @Register 只是为了引用已向系统 GAC 注册的自定义程序集。

这些程序集驻留在哪里呢?它们必须放在应用程序的虚拟目录下的 BIN 目录中。如果此目录不存在,则应该创建该目录。如果您的 ASP.NET 应用程序不使用虚拟目录,则会从 Web 服务器的根目录隐式运行。因此,BIN 目录在 Web 服务器的根目录下。例如,c:/inetpub/wwwroot/bin