对象构造技术示例
更新:2007 年 11 月
此示例演示对象构造字符串在 .NET 环境中的使用。对象构造字符串是可以通过组件服务管理工具进行指定或编辑的初始化字符串,从而消除了在组件内使用硬编码的配置信息的需要。此示例的用户界面是带有一个按钮的窗体,该按钮可以创建一个使用构造字符串的对象。消息框将显示激活的各个阶段。
有关使用这些示例的信息,请参见下面的主题:
使用命令提示生成示例
打开命令提示窗口,定位到 Technologies\ComponentServices\ObjectConstruction 目录下语言特定的子目录之一。
根据所选的编程语言,键入 msbuild ObjectConstructionCS.sln 或 msbuild ObjectConstructionVB.sln。
使用 Visual Studio 生成示例
打开 Windows 资源管理器,定位到 Technologies\ComponentServices\ObjectConstruction 目录下语言特定的子目录之一。
根据所选的编程语言,双击 ObjectConstructionCS.sln 或 ObjectConstructionVB.sln 的图标,在 Visual Studio 中打开该文件。
在“生成”菜单上单击“生成解决方案”。
运行示例
打开命令提示窗口或 Windows 资源管理器,定位到包含所生成可执行文件的目录。
在命令行中键入 OCDemo.exe,或者在 Windows 资源管理器中双击可执行文件以启动它。注意您执行的是示例应用程序的 C#(位于 \CS 子目录中)还是 Visual Basic(位于 \VB 子目录中)版本,因为这将决定您在后面的步骤中将以管理方式编辑哪些 COM+ 组件属性。
当该程序启动时,单击标记为“创建对象”的按钮。在激活的每个阶段都将显示一个消息框。请注意在对 IObjectConstruct::Construct 的调用中报告的对象构造字符串的值。
通过单击“开始”->“所有程序”->“管理工具”->“组件服务”来启动“组件服务管理工具”,然后通过在左侧的资源管理器窗格中展开“组件服务”\“计算机”\“我的电脑”\“COM+ 应用程序”来找到 OCDemoSvr COM+ 应用程序。
展开“OCDemoSvr”\“组件”,并找到 Microsoft.Samples.Technologies.ComponentServices.ObjectConstruction.ObjectConstructionTest 组件。
右击 ObjectConstructionTest 组件并从弹出菜单中选择“属性”。
单击“激活”选项卡,在“构造者字符串”编辑字段中输入新的文本值。单击“确定”接受更改。
返回到 OCDemo 应用程序,然后再次单击“创建对象”。请注意 IObjectConstruct 方法所报告的新值(它应该与在 COM+ 资源管理器组件属性页中新编辑的字符串匹配)。
卸载示例
定位到运行 msbuild.exe 或打开 .sln 文件时所在的目录。
根据所选的编程语言,在命令行中键入 msbuild.exe ObjectConstructionVB.sln /t:Clean 或 msbuild.exe ObjectConstructionCS.sln /t:Clean。此操作将使用 /u 开关调用 .NET 服务安装工具 (Regsvcs.exe) 和全局程序集缓存工具 (Gacutil.exe),以便从 COM+ 目录和全局程序集缓存中移除示例文件。
要求
**平台:**Windows 2000、Windows XP、Windows Server 2003
**.NET Framework 版本:**2.0、1.1、1.0
备注
有关二进制文件的创建和注册步骤示例的更多信息,请查看源代码文件中的注释。
此过程演示如何创建启用了对象构造并使用默认构造字符串的 COM+ 组件。在创建对象实例时,各种组件方法将显示消息框,以演示调用顺序。您可以通过使用组件服务管理工具来修改对象构造字符串,然后重新运行该示例,并观察传递给组件实例的对象构造字符串是否已被更改。
说明: |
---|
在运行该示例之前,必须使用 全局程序集缓存工具 (Gacutil.exe) 将 OCDemoSvr.dll 程序集安装到全局程序集缓存中。Gacutil.exe 位于 SDK\<版本>\Bin 目录中。例如,如果生成了示例程序的 Visual Basic 版本,定位到 C:\Documents and Settings\您的用户名\My Documents\ Samples\Technologies\ComponentServices\ObjectConstruction\VB 目录并键入 gacutil -i OCDemoSvr.dll。 |
在组件服务管理工具中查看到的组件名称为 Microsoft.Samples.Technologies.ComponentServices.ObjectConstruction.ObjectConstructionTest。
如果对组件启用了对象构造,则 COM+ 在创建对象的实例后,会立即调用和实现 IObjectContruct::Construct 方法。在组件的激活属性中指定的对象构造字符串将作为一个参数传递给该方法。这一点与正确使用对象字符串的组件代码结合在一起,可以有效地提供参数化的对象构造。
可以在 ConstructionEnabledAttribute 的 Default 属性中、在 COM+ 目录中或在这两者中为构造字符串指定默认字符串值。
例如,组件开发人员可能会使用此功能来编写拥有通用 ODBC 连接的组件。该对象构造字符串将存放准确的 DSN,可以通过组件服务管理工具对该 DSN 进行更改。
对象构造字符串在与 COM+ 对象池服务结合使用时可能非常有用。