聚集网(jujiwang.com) - 收录免费分类目录信息软文发布网址提交
免费加入

AssemblyInfo 的未来:面向 .NET 的持续演变和支持 (assembly什么意思)

文章编号:10522时间:2024-09-28人气:


面向 的未来

AssemblyInfo 是 .NET程序集中用于定义元数据和程序集特性的一个关键文件。自 .NET Framework 1.0 引入以来,它一直是元数据定义的基石。随着 .NET 6 的发布,AssemblyInfo 迎来了重大更新,进一步增强了其在现代 .NET 生态系统中的作用和灵活度。

AssemblyInfo 的演变

  • .NET Framework 1.0:AssemblyInfo 诞生,用于定义基本元数据。
  • .NET Framework 2.0:引入了特性支持,允许开发人员通过特性注入附加元数据和行为。
  • .NET Framework 4.0:添加了生成时属性和条件编译支持,提高了元数据定义的灵活性。
  • .NET 5.0:引入了 TargetFrameworkAttribute 特性,允许针对特定 .NET 框架版本生成程序集。
  • .NET 6.0:AssemblyInfo 成为源文件,允许使用 C 语法进行定义,并支持使用新特性。
的持续演变和支持

AssemblyInfo 在 .NET 6 中的更新

.NET 6 中的 AssemblyInfo 主要更新包括:
  • 集成到 .NET SDK:AssemblyInfo 现在集成到 .NET SDK 中,可以轻松访问和管理。
  • 成为源文件:AssemblyInfo 成为源文件(而不是二进制文件),允许使用 C 语法进行定义,从而提高了可读性和可维护性。
  • 支持新特性:AssemblyInfo 现在支持使用特性定义元数据,其中一些新特性包括:
    • InternalsVisibleToAttribute:允许内部成员对其他程序集可见。
    • PackageReferenceAttribute:指定程序集依赖项。
    • SupportedOSPlatformAttribute:指示程序集支持哪些操作系统平台。

AssemblyInfo 的持续支持

尽管 AssemblyInfo 的形式和定义机制发生了变化,但 .NET 团队仍然致力于为 AssemblyInfo 提供持续的支持。AssemblyInfo 仍然是定义 .NET 程序集元数据的标准方式,并且将继续在未来的 .NET 版本中得到增强。

使用 AssemblyInfo 定义元数据

使用 AssemblyInfo 定义元数据的基本步骤如下:1. 在项目中创建 AssemblyInfo.cs 文件。2. 使用 C 语法定义元数据属性。3. 编译项目以生成程序集。例如,以下 AssemblyInfo.cs 文件定义了程序集标题、版本和文化: // AssemblyInfo.csusing System.Reflection;[assembly: AssemblyTitle("MyAssembly")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyCulture("en-US")]

结论

AssemblyInfo 是 .NET 程序集元数据定义的一个强大且灵活的工具。随着 .NET 6 的发布,AssemblyInfo 成为源文件并支持使用新特性,从而增强了其在现代 .NET 生态系统中的作用。.NET 团队致力于为 AssemblyInfo 提供持续的支持,使其仍然是定义 .NET 程序集元数据的标准方式。

现在一dll为强名称, .net 如何去掉强名称验证呢,或者通过安装项目将其安装到gac中呢

除了系统默认放置在GAC中的Assembly如以外,我们也可以添加自己的Assembly: 1)创建一个强名称的Assembly,例如 2)运行gacutil -i ,把这个Assembly添加到GAC 3)在程序中动态装载: ass=(ToolbarComponent, Version=1.0.934., Culture=neutral, PublicKeyToken=65fc8d4927f); (Is the assembly loaded from GAC+); 在上面的程序中,ToolbarComponent就是从GAC装载而不是从程序的运行目录下的dll文件中装载,程序目录下不需要放置程序也能正常运行。 另外,()中的参数可以通过gacutil -l查到。 另外,上面提到了GAC中的Assembly必须是strong-name的。 创建strong-name的Assembly的步骤大致如下: a) 在命令行运行“sn -k ”创建一个密钥文件。 这里的也是附带的一个工具。 b) 在里面修改“”文件: [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile(..\..\)] c) 编译项目,就能得到一个strong-name的Assembly。

如何使用 Visual Basic .NET 生成 Office COM 加载项

所有 COM 加载项都从此接口继承而来,而且都必须实现其五个方法中的每一个方法。 OnConnection 每当连接 COM 加载项时,都会激发 OnConnection 事件。 加载项可以在启动时连接,由最终用户连接或者通过自动化来连接。 如果 OnConnection 成功地返回,则表明已加载了加载项。 如果返回错误消息,那么宿主应用程序就立即释放其对该加载项的引用,而且该对象将被破坏。 OnConnection 使用以下四个参数: Application— 一个对宿主应用程序对象的引用。 ConnectMode— 一个指定加载项连接方式的常量。 加载项可以使用以下几种方式连接: ext_cm_AfterStartup— 加载项由最终用户从 COM 加载项对话框启动。 ext_cm_CommandLine— 加载项从命令行连接。 请注意,此方法不适用于生成 Office 应用程序的 COM 加载项。 ext_cm_External— 加载项由外部应用程序通过自动化连接。 请注意,此方法不适用于生成 Office 应用程序的 COM 加载项。 ext_cm_Startup— 加载项由宿主在应用程序启动时启动。 此行为由注册表中的设置来控制。 AddInInst— 一个对 COMAddIn 对象的引用,它引用宿主应用程序的 COMAddIns 集合中的此加载项。 Custom— 一个包含 Variant 类型值的数组,它可以存储用户定义的数据。 OnDisconnection 当COM 加载项断开连接并且在它从内存中卸载之前,将激发 OnDisconnection 事件。 加载项应在此事件中执行所有资源清理操作,并还原对宿主应用程序所做的任何更改。 OnDisconnection 使用以下两个参数: RemoveMode— 一个指定加载项断开连接的方式的常量。 加载项可以使用以下方式断开连接: ext_dm_HostShutdown— 加载项在宿主应用程序关闭时断开连接。 ext_dm_UserClosed— 加载项由最终用户或自动化控制器断开连接。 Custom— 一个包含 Variant 类型值的数组,它可以存储用户定义的数据。 OnAddInsUpdate 当注册的 COM 加载项集发生变化时,将激发 OnAddInsUpdate 事件。 换言之,每当安装 COM 加载项或者从宿主应用程序中删除 COM 加载项时,都会激发此事件。 OnStartupComplete 和 OnBeginShutdown 当宿主应用程序在忙于向内存中加载自身或者从内存中卸载自身时应避免用户交互,而 OnStartupComplete 和OnBeginShutdown 方法都是在宿主应用程序已离开或正要进入这一状态时被调用的。 只有在启动期间已连接了加载项的情况下才调用 OnStartupComplete,只有宿主在关闭过程中要断开与加载项的连接的情况下才调用 OnBeginShutdown。 由于在激发这些事件时宿主应用程序的用户界面是完全活动的,因此它们可能是执行某些操作的唯一途径,以其他途径将无法从 OnConnection 和OnDisconnection 中执行这些操作。 COM 加载项注册 除了正常的 COM 注册外,COM 加载项还需要向其运行所在的每一个 Office 应用程序注册自身。 为了向特定应用程序注册其自身,加载项应使用其 ProgID 作为项名称在以下位置下创建一个子项:HKEY_CURRENT_USER\Software\Microsoft\Office\OfficeApp\Addins\ProgID 加载项可以在此项的位置为好记的显示名称和完整的说明提供值。 此外,加载项应使用一个名为LoadBehavior 的DWORD 值指定所希望的加载行为。 此值确定宿主应用程序如何加载加载项,而且它由以下值的组合组成: 0 = Disconnect — 未加载。 1 = Connected — 已加载。 2 = Bootload — 在应用程序启动时加载。 8 = DemandLoad — 只在用户请求时加载。 16 = ConnectFirstTime — 只加载一次(在下次启动时)。 通常指定 0x03 (Connected | Bootload) 这一典型的值。 实现了 IDTExtensibility2 的加载项还应指定一个名为CommandLineSafe 的DWORD 值,以指出加载项对于不支持用户界面的操作是否安全。 值为 0x00 表示 False,值为 0x01 则表示 True。 使用Visual Basic 生成 COM 加载项 如上文所述,Office COM 加载项是由 Office 应用程序通过 COM 运行时层激活的进程内 COM 服务器。 因此,为了在 Visual Basic 中开发 COM 加载项,加载项组件需要在 中实现,然后通过 COM interop 层向 COM 客户端(即 Office 应用程序)公开。 要在Visual Basic 中创建 COM 加载项,请按照下列步骤操作: 在Visual Basic 中,创建一个类库项目。 添加一个对实现 IDTExtensibility2 的类型库的引用。 此项的主 interop 程序集已经出现在 Extensibility 名称下。 添加一个对 Microsoft Office 对象库的引用。 此项的主 interop 程序集已经出现在 Office 名称下。 在实现 IDTExtensibility2 的类库中创建一个公共类。 生成该类库之后,将该库向 COM interop 进行注册。 为此,需为此类库生成一个使用强名称的程序集,然后将它注册到 COM interop。 可以使用 来向 COM interop 注册 组件。 创建注册表条目以使 Office 应用程序可以识别并加载加载项。 您可以选择完成所有这些步骤,也可以创建类型为共享的加载项的NET 项目。 这将启动“扩展向导”,该向导可帮助您在 中创建 COM 加载项。 “扩展向导”将创建一个 Visual Basic 类库项目,同时创建一个实现 IDTExtensibility2 接口的 Connect 类。 它还会生成实现 IDTExtensibility 的空成员的框架代码。 此项目具有对 Extensibility 和 Office 程序集的引用。 该项目的生成设置中已选中了为COM Interop 注册。 将生成程序集密钥 () 文件,并在 文件的 AssemblyKeyfile 属性中进行引用。 除类库项目外,该向导还将生成一个安装项目,该项目可用于在其他计算机上部署 COM 加载项。 在需要时可以删除此项目。 分步示例在Microsoft Visual Studio 的文件菜单上,单击新建,然后单击项目。 在新建项目对话框中,展开项目类型下的其他项目,选择扩展性项目,然后选择共享的加载项模板。 键入MyCOMAddin 作为该加载项的名称,然后单击确定。 “扩展向导”出现后,请按照下列步骤操作: 在第1 页,选择使用Visual Basic 创建加载项,然后单击下一步。 在第2 页,选择下面的宿主应用程序,然后单击下一步: Microsoft WordMicrosoft PowerPointMicrosoft OutlookMicrosoft ExcelMicrosoft Access在第3 页上,输入该加载项的名称和说明,然后单击下一步。 注意:该加载项的名称和说明出现在 Office 应用程序的 COM 加载项对话框中。 在第4 页,选择所有可用的选项,然后单击下一步。 单击完成。 将以下成员添加到 Connect 类中:Dim WithEvents MyButton As CommandBarButton 在Connect 类中实现 IDTExtensibility2 的所有成员的代码,如下所示:Public Sub OnBeginShutdown(ByRef custom As ) Implements On Error Resume Next Notify the user you are shutting down, and delete the button. MsgBox(Our custom Add-in is unloading.) () MyButton = Nothing End Sub Public Sub OnAddInsUpdate(ByRef custom As ) Implements End Sub Public Sub OnStartupComplete(ByRef custom As ) Implements Dim oCommandBars As CommandBars Dim oStandardBar As CommandBar On Error Resume Next Set up a custom button on the Standard command bar. oCommandBars = If oCommandBars Is Nothing Then Outlook has the CommandBars collection on the Explorer object. oCommandBars = End If oStandardBar = (Standard) If oStandardBar Is Nothing Then Access names its main toolbar Database. oStandardBar = (Database) End If In case the button was not deleted, use the exiting one. MyButton = (My Custom Button) If MyButton Is Nothing Then MyButton = (1) With MyButton = My Custom Button = The following items are optional, but recommended. The Tag property lets you quickly find the control and helps MSO keep track of it when more than one application window is visible. The property is required by some Office applications and should be provided. = My Custom Button The OnAction property is optional but recommended. It should be set to the ProgID of the add-in, so that if the add-in is not loaded when a user clicks the button, MSO loads the add-in automatically and then raises the Click event for the add-in to handle. = ! = True End With End If Display a simple message to show which application you started in. MsgBox(Started in & & .) oStandardBar = Nothing oCommandBars = Nothing End Sub Public Sub OnDisconnection(ByVal RemoveMode As _DisconnectMode, ByRef custom As ) Implements On Error Resume Next If __dm_HostShutdown Then _ Call OnBeginShutdown(custom) applicationObject = Nothing End Sub Public Sub OnConnection(ByVal application As Object, ByVal connectMode As _ConnectMode, ByVal addInInst As Object, ByRef custom As ) Implements MsgBox(On Connection In MyAddin) applicationObject = application addInInstance = addInInst If you arent in startup, manually call OnStartupComplete. If (__cm_Startup) Then _ Call OnStartupComplete(custom) End Sub Private Sub MyButton_Click(ByVal Ctrl As , ByRef CancelDefault As Boolean) Handles MsgBox(Our CommandBar button was pressed!) End Sub 生成并测试 COM 加载项。 为此,请按照下列步骤操作: 在生成菜单上,单击生成MyCOMAddin。 请注意,在生成 COM 加载项的过程中实际上就向 COM interop 注册了 类。 启动一个您选作加载项的宿主应用程序的 Office 应用程序(如 Microsoft Word 或 Microsoft Excel)。 加载项启动之后,将激发 OnConnection 事件,您会收到一个消息框。 解除该消息框之后,会激发 OnStartupComplete 事件,您将收到第二个消息框。 请解除该消息框。 请注意,加载项向常用工具栏中添加了一个新的标题为“My Custom Button”(我的自定义按钮)的自定义按钮。 单击My Custom Button(我的自定义按钮)。 该按钮的单击事件将由加载项来处理,而且您会收到一个消息框。 请解除该消息框。 退出该 Office 应用程序。 退出应用程序时,将激发 OnBeginShutDown 事件,您会收到一个消息框。 解除该消息框以结束演示。 回到顶端 | 提供反馈

GAC是什么,有什么作用??

1)GAC是Great Amusement Centre的缩写,位于Mudu senior high (Global Assessment certificate)一种国际英语预科课程,是ACT(Ameracan Collage Test)美国高考的子课程 (Global Assessment Certificate,全球评估证书) /ACT(American College Test, 美国大学入学考试) 预科课程,是美国教育委员会与澳大利亚高校根据母语非英语国家高中二年级结业以及高三毕业后的学生进入美国和英联邦国家大学存在的语言和学科知识差异制定,帮助学生在本国完成国外大学预科课程的学习,突破英语障碍,顺利的进入国外正规大学而开设的课程。 完成 GAC/ACT 预科课程,学生可直接免预科进入美国、加拿大、澳大利亚、英国、新西兰等110多所正规大学本科一年级学习,所获学位均得到中国教育部承认。 GAC/ACT 预科课程是国内惟一包含 ACT 考试的预科课程。 取得ACT成绩可直接申请全美3300所大学及全额奖学金。 (2)GAC全称是Global Assembly Cache作用是可以存放一些有很多程序都要用到的公共Assembly,例如、等等。 这样,很多程序就可以从GAC里面取得Assembly,而不需要再把所有要用到的Assembly都拷贝到应用程序的执行目录下面。 举例而言,如果没有GAC,那么势必每个WinForm程序的目录下就都要从C:\WINDOWS\\Framework\v1.0.3705下面拷贝一份,这样显然不如都从GAC里面取用方便,也有利于Assembly的升级和版本控制。 除了系统默认放置在GAC中的Assembly如以外,我们也可以添加自己的Assembly: 1)创建一个strong-name的Assembly,例如 2)运行gacutil -i ,把这个Assembly添加到GAC 3)在程序中动态装载: ass=(ToolbarComponent, Version=1.0.934., Culture=neutral, PublicKeyToken=65fc8d4927f); (Is the assembly loaded from GAC? +); 在上面的程序中,ToolbarComponent就是从GAC装载而不是从程序的运行目录下的dll文件中装载,程序目录下不需要放置程序也能正常运行。 另外,()中的参数可以通过gacutil -l查到。 另外,上面提到了GAC中的Assembly必须是strong-name的。 创建strong-name的Assembly的步骤大致如下: a) 在命令行运行“sn -k ”创建一个密钥文件。 这里的也是附带的一个工具。 b) 在里面修改“”文件: [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile(..\\..\\)] c) 编译项目,就能得到一个strong-name的Assembly。 MSDN中有一些对GAC的介绍,您可以参考: 1)《Assembly Cache Viewer ()》 2)《Global Assembly Cache》 Framework中附带了一些和GAC有关的工具,其中包括: 1),一个命令行的工具,用于在GAC中浏览、添加、删除Assembly 2),也是一个命令行的工具,用于在GAC中创建Native Image 3),一个MMC终端,可以图形化完成的主要功能。 (2)GAC(granular activated carbon)粒状活性炭活性炭(AC,activated carbon),是一种具有多孔结构和大的内部比表面积的材料。 由于其大的比表面积、微孔结构、高的吸附能力和很高的表面活性而成为独特的多功能吸附剂,且其价廉易得,部分还可再生活化,同时它可有效去除废水、废气中的大部分有机物和某些无机物,所以它被世界各国广泛地应用于污水及废气的处理、空气净化、回收稀有金属及溶剂等环境保护和资源回收等领域。 活性碳分为粒状活性碳、粉末活性碳及活性碳纤维,但是由于粉末活性碳有二次污染且不能再生赋活而被限制利用作用。 粒状活性碳( GAC - granular activated carbon )的 85%~90% 用于水处理和气体吸附处理,它的粒径为 500 ~ 5000μm , GAC 的孔结构一般是具有三分散态的孔分布 , 既具有按国际纯粹与应用化学会 (IUPAC) 分类的孔径大于 50 nm 的大孔 , 也有 2.0 ~ 50nm 的中孔(过渡孔)和小于 2.0nm 的微孔。 由于 GAC 的孔状结构所致 , 它的吸附速度较慢 , 分离率不高 , 特别是它的物理形态使其在应用和操作上的有诸多不便 , 限制了 GAC 的应用范围。 活性碳纤维( ACF - activated carbon fiber )是继粉状与粒状活性碳之后的第三代活性碳产品。 70 年代发展起来的活性碳纤维是随着碳纤维工业发展起来的一种新型,高效的吸附剂。

怎么用Vc++6.0调用一个.Net编写的Com+服务组件

才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型:1、在VS2005中,C#编写DLL并使用C++调用2、在VS2005中C#编写的COM组件,使用VC6.0调用3、在VC6.0中编写COM组件,使用VS2005 C#调用4、在VC6.0中编写COM组件,使用VC6.0调用其中每个类型都写了两个程序,一个为COM组件程序,一个为调用程序程序实现:1、在VS2005中,C#编写DLL并使用C++调用(1)C#编写DLL程序建立C#编写的DLL程序AddDll,项目类型为:类库程序代码:using System;using ;using ;namespace AddDll{public class Add{public int iadd(int a, int b){int c = a + b;return c;}}}(2)C++编写调用程序建立C++的Win32控制台应用程序UseDll,项目类型为:Win32控制台应用程序配置:右键点击解决方案资源管理器中的UseDll,选择“属性”,将公共语言运行库支持设置为“公共语言运行库支持(/clr)”公共语言运行库设置 C++编写调用程序:公共语言运行库设置程序代码:#include stdafx.h#include stdio.h#using ../debug/ namespace AddDll;int _tmain(int argc, _TCHAR* argv[]){int result;Add ^add = gcnew Add();result = add->iadd(10,90);printf(%d,result);scanf(%s);return 0;}2、在VS2005中C#编写的COM组件,使用VC6.0调用(1)VS2005中使用C#编写COM组件建立C#编写的COM组件,项目类型为类库配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)”打开文件,设置[assembly: ComVisible(true)]这用就可以生成文件VS2005中使用C#编写COM组件:COM生成设置程序代码:using System;using ;using ;u(2)VC6.0编写调用程序使用VC6.0编写建立MFC应用程序UseCom,项目类型为MFC AppWizard(exe)3、在VC6.0中编写COM组件,使用VS2005 C#调用(1)VC6.0编写COM使用VC6.0建立COM组件,工程类型:ATL COM AppWizard程序代码:接口:(2)VS2005使用C#编写调用程序(网站程序)使用VS2005建立网站UseCom配置:在解决方案资源管理器中的主目录点击右键,选择添加引用,选择COM,添加刚刚建立的AddCom 1.0 Type Library在程序中要using编写的COM组件:using ADDCOMLib;引用COM VS2005使用C#编写调用程序:引用COM程序代码:u4、在VC6.0中编写COM组件,使用VC6.0调用(1)VC6.0编写COM组件使用VC6.0建立COM组件,工程类型:ATL COM AppWizard程序代码:接口:(2)VC6.0编写调用程序使用VC6.0建立MFC应用程序UseCOM,调用刚刚建立的COM组件将上面程序AddCom生成的放入本程序的工程目录和程序生成目录中在StdAfx.h中加入:代码请参考:

asp.net 中的App_Data文件夹作用

存放数据库文件的,比如ACCESS,SQL 2005 简化版 貌似也可以在代码中可以方便的调用|DataDirectory|可以直接访问app_data文件夹以下是其他一些的常用文件夹1. Bin文件夹Bin文件夹包含应用程序所需的,用于控件、组件或者需要引用的任何其他代码的可部署程序集。 该目录中存在的任何文 件将自动地链接到应用程序。 2. App_Browser文件夹该可选的文件夹包含文件。 文件描述浏览器(不管是移动设备浏览器,还是台式机浏览器)的特 征和功能。 3. App_Code文件夹App_Code文件夹正好在Web应用程序根目录下,其存储所有应当作为应用程序的一部分动态编译的类文件。 这些类文件自 动链接到应用程序,而不需要在页面中添加任何显式指令或声明来创建依赖性。 App_Code文件夹中放置的类文件可以包含任何可识别的组件——自定义控件、辅助类、build提供程序、业务类、自定义提供程序、HTTP处理程序等。 注意 在开发时,对App_Code文件夹的更改会导致整个应用程序重新编译。 对于大型项目,这可能不受欢迎,而且很耗时。 为此,鼓励大家将代码进行模块化处理 到不同的类库中,按逻辑上相关的类集合进行组织。 应用程序专用的辅助类大多应当放置在App_Code文件夹中。 App_Code文件夹中存放的所有类文件应当使用相同的语言。 如果类文件使用两种或多种语言编写,则必须创建特定语言的子目录,以包含用每种语言编写的类。 一旦根据语言组织这些类文件,就要在文件中为每个子目录添加一个设置:重要的是,特定语言的子目录应在文件中注册,否则,不管它们属于哪个文件夹,App_Code文件夹下 的所有文件将被编译成一个单独的程序集。 上述配置脚本描述了这么一种情况,即所有的C#文件都放在App_Code文件夹的根目录下,而把几个 Visual 类文件移入VBFolder目录中。 如果节中提到的目录不存在,则会收到一个编译错误提 示。 App_Code根文件夹中的文件被编译成App_Code_程序集,其中xxx是随机生成的字符序列。 一个 给定子目录中的文件将被编译成一个名为App_SubCode_xxx_的动态创建的程序集,其中xxx指示子目录的名称,而yyy是一个 随机字符序列。 只有在应用程序根目录中的文件中进行了设置,节才有效。 在App_Code目录或任何其他子目录中放置一个文件,可以创建一个强命名的程序集。 显然,如果该文件夹包含Visual Basic 文件,那么将使用文件。 程序集配置文件可以引用一个文件来保存强名称的密钥。 注意 给一个程序集设置一个强名称,首先必须获得一个公开/私有密钥对。 通过使用强名称(Strong Name)工具(),可以获得这样一个密钥对。 强名称工具是我们可以在 Framework的安装路径中发现的SDK binary之一。 密钥对文件通常有一个扩展名。 可以将该文件保存到一个应用程序文件夹中,并在文件中引用它,如下所示:[assembly: AssemblyKeyFileAttribute()]注意,Visual Basic 是在包含Visual Studio Solution的目录中寻找密钥文件,而C#编译器则在包含该binary的目录中寻找密钥文件。 据此可知,用此属性调整我们使用的路径,或者把密钥文件放在合适的文件夹中。 在随后发生的任何重新生成中,程序集的名称将发生变化。 同时,老的AppDomain请求一结束,就删除老的程序集。 App_Code文件夹并非只能包含类文件。 特别是,它可以包含并能自动地处理代表数据架构的XSD文件。 把一个XSD文件 添加到该文件夹中时,编译器将把它解析成一个有类型的DataSet类,并将它添加到应用程序作用域中。 在 1.x中,这一工作由VisualStudio 向导,使用一个命令行实用程序()完成的。 注意 使用文件注册一个组件(例如,一个自定义的服务器控件或一个自定义的HTTP处理程序)时,通常要求指定包含该代码的程序集名称。 如 果该组件定义在App_Code文件夹中,则应该用什么名称来指示程序集?在这种情况下,只是忽略程序集信息,并规定完整的类名即可。 如果没有规定任何程 序集,则运行库将试图从任何已装载的程序集中装入该类,包括为App_Code文件夹动态创建的程序集。 4. App_Data文件夹App_Data文件夹应该包含应用程序的本地数据存储。 它通常以文件(诸如MicrosoftAccess或Microsoft SQL Server Express数据库、XML文件、文本文件以及应用程序支持的任何其他文件)形式包含数据存储。 该文件夹内容不由处理。 该文件夹是提供程序存储自身数据的默认位置。 注意 默认帐户被授予对文件夹的完全访问权限。 如果碰巧要改变帐户,一定要确保新帐户被授予对该文件夹的读/写访问权。 5. App_GlobalResources文件夹6. App_LocalResources文件夹7. App_Themes文件夹App_Themes文件夹为控件定义主题。 主题包含在App_Themes文件夹下的一个文件夹。 根据定义,一个主题是一组带有样式信息的文件。 主题文件夹中的文件内容被编译,以生成一个类,而该类被页面调用以编程的方式设置主题化控件的样式。 App_Themes文件夹列出应用程序的本地主题。 应用程序还可以继承如下文件夹中定义的全局主题:%WINDOWS%\\Framework\[version]\\Themes从编译的角度看,全局主题和局部主题没有区别。 如果一个给定名称的主题,既存在应用程序的本地主题,又存在服务器机器的全局主题,则本地主题优先适用。 8. App_WebReferences文件夹在Visual Studio 2003中,一个需要访问Web服务的应用程序,将通过“添加Web引用”对话框获得相应的文件。 Web服务的WSDL(Web Service DescriptionLanguage)文档,对于从页面使用Web服务是不够的。 页面最终是一个托管类,并且需要与另一个托管类通信。 因此,Web服务被一个 代理类所包装。 该代理类是由VisualStudio使用命令行工具的服务创建的。 该代理类尽量包含与Web服务商的Web方法一样多的方法,并且它结合了Web服务的公共接口 定义的任何自定义的数据类型。 这个操作不需要开发人员付出很大的代价。 然而,开发人员显然要依赖于Visual Studio来生成代理类。 如果能够直接把文件放在应用程序的目录树的某个地方,并让处理其余的任务,这样不是更容易、更简单 吗?这正好是App_WebReferences文件夹要做的事情。 它识别那些用来描述所绑定的Web服务的文件,并生成运行时代理类,以便页面能够以类型安全的方式 放置对Web服务的调用。 App_WebReferences文件夹可以包含子文件夹。 子文件夹的名称驱动最后所得到的代理类的命名空间,而WSDL文件 定义类名。 例如,文件和ProsAspNet20子文件夹将创建一个称为的代理类。 该动 态创建的程序集称为App_,其中xxx是一个随机的字符序列。 文件夹名称文件类型注 释包含应用程序所需的任何预生成的程序集App_包含应用程序特有的浏览器定义文件,用它来识别各浏览器及确定它们的功能App_、、、自定义的文件类型包含作为应用程序的一部分编译的类的源文件。 当页面被请求时,编译该文件夹中的代码。 该文件夹中的代码在应用程序中自动地被引用App_、、包含Microsoft Office Access和SQL Express文件以及XML文件或其他数据存储App_包含在本地化应用程序中以编程方式使用的资源文件App_包含页面范围的资源文件App_、、、附属文件包含一组定义页面和控件外观的文件App_



相关标签: AssemblyInfo.NET的未来的持续演变和支持assembly什么意思面向

上一篇:搭建Android开发环境一步一步的教程搭建and

下一篇:AssemblyInfo的高级用法自定义命名空间主键

内容声明:

1、本站收录的内容来源于大数据收集,版权归原网站所有!
2、本站收录的内容若侵害到您的利益,请联系我们进行删除处理!
3、本站不接受违法信息,如您发现违法内容,请联系我们进行举报处理!
4、本文地址:http://www.jujiwang.com/article/e63c295a39d51f02e323.html,复制请保留版权链接!


温馨小提示:在您的网站做上本站友情链接,访问一次即可自动收录并自动排在本站第一位!
随机文章
快递查询终极解决方案:自建查询系统,掌握物流信息主动权 (快递跟终查询)

快递查询终极解决方案:自建查询系统,掌握物流信息主动权 (快递跟终查询)

在当今电子商务蓬勃发展的时代,快递物流已经成为我们日常生活中不可或缺的一部分,对于消费者来说,快递查询常常让人感到头疼和无奈,第三方查询平台信息不全、更新不及时,官方查询网站复杂繁琐,难以满足我们的需求,为了彻底解决这一痛点,本文将为你介绍一种终极解决方案,自建快递查询系统,通过搭建自己的查询系统,你可以轻松掌握物流信息,主动掌控快递...。

技术教程 2024-09-27 15:41:19

Java开发人员指南:深入了解NullPointerException的缘由和解决方法 (java开发工程师)

Java开发人员指南:深入了解NullPointerException的缘由和解决方法 (java开发工程师)

NullPointerException,NPE,是Java中最常见的运行时异常之一,它会异常地终止你的程序,并可能导致大量混乱和调试时间,理解NPE的原因以及如何解决它们对于任何Java开发人员都至关重要,为什么会出现NullPointerException,NPE发生在对值为null的对象引用调用方法或字段时,当变量被声明但未被初...。

技术教程 2024-09-26 15:13:20

内存损坏:不安全的函数指针可能会导致内存损坏,从而允许攻击者访问和修改敏感数据。(内存损坏不能装系统吗)

内存损坏:不安全的函数指针可能会导致内存损坏,从而允许攻击者访问和修改敏感数据。(内存损坏不能装系统吗)

内存损坏是一种严重的计算机安全漏洞,它允许攻击者访问和修改敏感数据,它是一种常见的攻击媒介,通常是由不安全的函数指针引起的,函数指针函数指针是一种变量,它存储指向函数的地址,这允许程序以动态和灵活的方式调用函数,不安全的函数指针可能会导致内存损坏,内存损坏的类型存在多种形式的内存损坏,包括,缓冲区溢出,当程序将数据写入缓冲区超出其界限...。

本站公告 2024-09-26 14:24:21

探索 Actix 的强大功能,了解如何开发异步 Web 应用程序 (探索act)

探索 Actix 的强大功能,了解如何开发异步 Web 应用程序 (探索act)

Actix是一个Rust框架,用于构建高性能、高可扩展的异步Web应用程序,它基于Rust的Tokio异步运行时,提供了开箱即用的出色的性能和可伸缩性,Actix的优势Actix拥有以下优势,异步,Actix使用Rust的异步I,O特性,允许您在单个线程上处理大量的并发请求,从而实现了高性能,高可扩展性,Actix应用程序易于扩展,可...。

最新资讯 2024-09-26 06:58:10

font:用于文本的字体。(BFO纳米粒子的压电效应)

font:用于文本的字体。(BFO纳米粒子的压电效应)

简介压电效应是一种将机械能转化为电能或电能转化为机械能的现象,材料在受到外力作用时,内部的电荷分布会发生改变,从而产生电势差;反之,当材料受到电场作用时,其形状也会发生改变,这种现象称为压电效应,近年来,随着纳米材料的快速发展,纳米粒子的压电效应引起了广泛关注,纳米粒子具有较大的比表面积和较强的量子尺寸效应,其压电性能与传统材料相比具...。

技术教程 2024-09-24 08:26:31

动态下拉框:使用 JavaScript 代码提高表单互动性 (动态下拉框与动态图表怎么连起来)

动态下拉框:使用 JavaScript 代码提高表单互动性 (动态下拉框与动态图表怎么连起来)

动态下拉框是通过JavaScript代码创建的,它允许用户根据第一个下拉框中的选择更改第二个下拉框中的选项,国家,中国美国日本城市,北京上海广州动态下拉框,使用JavaScript代码提高表单互动性动态下拉框是通过JavaScript代码创建的,它允许用户根据第一个下拉框中的选择更改第二个下拉框中的选项,这在需要限制第二个下拉框中的选...。

技术教程 2024-09-24 06:36:45

深入剖析 AlphaImageloader:Android 图像加载机制的创新 (深入剖析alphafold算法)

深入剖析 AlphaImageloader:Android 图像加载机制的创新 (深入剖析alphafold算法)

body,font,family,Arial,Helvetica,sans,serif,font,size,16px,h1,font,size,24px,margin,bottom,20px,h2,font,size,18px,margin,bottom,15px,ul,list,style,type,none,padding,...。

互联网资讯 2024-09-15 13:31:17

立即获取适用于 Windows/Mac/Linux 的 C 语言下载 (立即获取提示)

立即获取适用于 Windows/Mac/Linux 的 C 语言下载 (立即获取提示)

C语言是一种计算机编程语言,广泛用于开发操作系统、嵌入式系统、数据库、网络应用程序等,其以其简洁、高效和可移植性而闻名,立即获取提示Windows下载Mac下载Linux下载C语言的特点有许多资源可以帮助您上手,包括,在线课程推荐书籍社区论坛C语言社区C语言是一个活跃的社区,拥有许多资源和支持,您可以加入在线论坛和组,与其他开发者讨论...。

技术教程 2024-09-12 07:58:26

体验自动发卡平台的无缝支付,提升客户满意度 (体验自动发卡的软件)

体验自动发卡平台的无缝支付,提升客户满意度 (体验自动发卡的软件)

在竞争激烈的现代商业环境中,提供无缝且安全的支付体验至关重要,自动发卡平台通过简化和自动化发卡流程,为企业赋能以提升客户满意度和业务成果,什么是自动发卡平台,自动发卡平台是一种软件解决方案,用于自动化物理和数字卡的生成、管理和分发,它使企业能够快速、准确地向客户发卡,无论是在商店还是在线,自动发卡平台的优势提升客户满意度,通过缩短发卡...。

技术教程 2024-09-11 12:11:08

Rectangle函数的全面指南:从基础到高级用法 (rectangle)

Rectangle函数的全面指南:从基础到高级用法 (rectangle)

简介矩形函数是计算机图形学中广泛使用的重要函数,它用于创建和操作矩形,矩形是一种具有四个直角的四边形,矩形函数在各种应用中很有用,例如,图形用户界面,GUI,设计游戏开发图像处理数据可视化基础用法创建矩形要创建一个矩形,可以使用`rectangle,`函数,此函数需要以下参数,`x`,矩形左上角的x坐标,`y`,矩形左上角的y坐标,...。

互联网资讯 2024-09-10 19:56:37

面向中国开发者的终极编程平台:编程中国 (面向中国开发的企业)

面向中国开发者的终极编程平台:编程中国 (面向中国开发的企业)

面向中国开发者的终极编程平台,编程中国引言随着中国科技产业的蓬勃发展,中国开发者们比以往任何时候都更加需要一个全面且易于使用的编程平台,编程中国正是为此而生,它是一个专门针对中国开发者打造的终极平台,旨在为他们提供所需的工具和资源,帮助他们开发出创新的产品并取得成功,一、全面的编程语言和技术支持编程中国支持多种流行的编程语言和技术,包...。

最新资讯 2024-09-09 09:56:51

Node.js 命令行最佳实践:提高生产率和效率 (node.js)

Node.js 命令行最佳实践:提高生产率和效率 (node.js)

命令行是Node.js开发人员必不可少的工具,通过遵循最佳实践,您可以提高工作效率和生产率,以下是一些值得遵循的建议,1.使用TaskRunnersTaskrunners,任务运行器,可以让您自动化重复性的任务,例如构建、测试和部署,这可以节省大量时间,让您可以专注于更重要的任务,一些流行的任务运行器包括Grunt、Gulp和Webp...。

本站公告 2024-09-05 16:25:30