文档详情

ASP.NET中bin app_code app_data等文件夹的作用.pdf

发布:2021-10-14约1.6万字共15页下载文档
文本预览下载声明
1. Bin文件夹 Bin 文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。该目录中存在的任 何.dll 文 件将自动地链接到应用程序。如果在该文件夹中留有不用的或过期的文件,则可能出现“二义性引用 (ambiguous reference)”异常的风险。换句话说,如果两个不同的程序集定义相同的类(相同的命名空间和名称),则 ASP.NET运行库不能决定应该使用哪一 个程序集,从而抛出一个异常。在开发时,当我们重新命名一个项目或一个 程序集的名称时,这是常见的错误。为了避免这种错误,一定不要在该文件夹中保留任何 不必要的程序集,或者至 少要从配置文件的assemblies节中删除如下代码行: add assembly=* / 在上表所列所有文件夹中,只有Bin可以被ASP.NET 1.x应用程序识别。该文件夹是强制性的。 2. App_Browser文件夹 该可选的文件夹包含.browser文件。.browser文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特 征和 功能。ASP.NET在安装路径下的Config\Browser 文件夹中安装了大量.browser文件,这些文件供所有应用程序共享。 我们只是把 当前应用程序特有的浏览器文件放在App_Browser文件夹下。.browser文件的内容即时动态地进行编译, 以便向ASP.NET运行库提供最新 的浏览器信息。 让我们简单谈谈拥有一个自定义的.browser文件可能有帮助的场景。设想应用程序使用了一个在某个浏览器下不能有效 呈现的控件。在指定的浏览器中显示宿主页面时,可以编写一个.browser文件,迫 ASP.NET使用一个不同的适配器 来生成该控件。 browsers browser id=browserID controlAdapters adapter controlType=Samples.CustomControl adapterType=Samples.Adapters.CustomControlAdapter / /controlAdapters /browser /browsers 假设 browserID 与 ASP.NET 识别的标准浏览器之一相匹配,则上文所示的.browser 文件指示在指定的浏览器下使用 CustomControlAdapter呈现CustomControl。 3. App_Code 文件夹 App_Code 文件夹正好在Web 应用程序根目录下,其存储所有应当作为应用程序的一部分动态编译的类文件。这些类 文件自动链接到应用程序,而不需要在页面中添加任何显式指令或声明来创建依赖性。App_Code 文件夹中放置的类文 件可以包含任何可识别的ASP.NET 组件 ——自定义控件、辅助类、build 提供程序、业务类、自定义提供程序、HTTP 处理程序等。 注意 在开发时,对 App_Code 文件夹的更改会导致整个应用程序重新编译。对于大型项目,这可能不受 欢迎,而且很耗时。为此,鼓励大家将代码进行模块化处理到不同的类库中,按逻辑上相关的类集合进行组织。应用 程序专用的辅助类大多应当放置在App_Code 文件夹中。 App_Code 文件夹中存放的所有类文件应当使用相同的语言。如果类文件使用两种或多种语言编写,则必须创建特定语 言的子目录,以包含用每种语言编写的类。一旦根据语言组织这些类文件,就要在web.config 文件中为每个子目录添 加一个设置: compilation codeSubDirectories add directoryName=VBFolder / /codeSubDirectories /compilation 重要的是,特定语言的子目录应在web.config 文件中注册,否则,不管它们属于哪个文件夹,App_Code 文件夹下 的 所有文件将被编译成一个单独的程序集。上述配置脚本描述了这么一种情况,即所有的C#文件都放在App_Code 文件 夹的根目录下,而把几个 Visual Basic .NET 类文件移入VBFolder 目录中。如果codeSubDirectories节中提到的目 录不存在,则会收到一个编译错误提 示。 App_Code 根文件夹中的文件被编译成App_Code_xxx.dll 程序集,其中 xxx 是随机生成的字符序列。一个 给定子目 录中的文件将被编译成一个名为App_SubCode_xxx_yyy.dll 的动态创建的程序集,其中xxx 指示子目录的名称,而yyy 是一个
显示全部
相似文档