下面的过程和示例描述如何配置对象构造并将 TestObjectConstruct 类的默认初始化字符串设置为字符串 "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes"。此字符串用于连接 SQL Server 数据库。对象构造主题解释如何从 ServicedComponent 类进一步使用 COM+ 对象构造。
配置对象构造并设置类的默认初始化字符串
- 定义直接或间接从 System.EnterpriseServices.ServicedComponent 类派生的类。例如,下面的代码显示直接从 System.EnterpriseServices.ServicedComponent 类派生的类 - TestObjectConstruct。- Imports System.EnterpriseServices Imports System Imports System.Data Imports System.Data.SqlClient … Public Class TestObjectConstruct Inherits ServicedComponent … End Class- using System; using System.EnterpriseServices; using System.Data; using System.Data.SqlClient; … public class TestObjectConstruct : ServicedComponent { … }
- 将 ConstructionEnabledAttribute 特性应用于该类并设置该特性的 Default 属性。例如,下面的代码将 ConstructionEnabledAttribute 特性应用于 - TestObjectConstruct类并将 Default 属性设置为 SQL Server 连接字符串。- <ConstructionEnabled([Default] := "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes")> _ Public Class TestObjectConstruct … End Class- [ConstructionEnabled(Default="Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes")] public class TestObjectConstruct : ServicedComponent { … }
- 重写 Construct 方法。 - <ConstructionEnabled([Default] := "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes")> _ Public Class TestObjectConstruct Inherits ServicedComponent Private m_connectStr As String Private conn as SqlConnection Protected Overrides Sub Construct(constructString As String) ' Called after constructor. m_connectStr = constructString End Sub Public Sub ConnectToDatabase() conn = New SqlConnection(m_connectStr) End Sub End Class- [C#] [ConstructionEnabled(Default="Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes")] public class TestObjectConstruct : ServicedComponent { private string connectStr; SqlConnection conn; public TestObjectConstruct() { … } protected override void Construct(string constructString) { // Called after constructor. connectStr = constructString; } public void ConnectToDatabase() { conn = new SqlConnection(connectStr); conn.Open(); } }
- 在客户端应用程序中,创建组件类的实例但不指定构造字符串,以便使用默认值。例如,下面的代码创建 - TestObjectConstruct类的一个实例,并且构造字符串默认为- "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes"。- Public Class App Overloads Public Shared Sub Main() Dim order As New TestObjectConstruct() order.ConnectToDatabase() End Sub End Class- public class App { public static void Main() { TestObjectConstruct order = new TestObjectConstruct(); order. ConnectToDatabase(); } }
安装了组件服务应用程序后,就可以通过使用“组件服务”管理工具指定构造字符串。若要输入组件的对象构造字符串,请执行下列步骤:
- 打开“组件服务”管理工具。 
- 在“组件服务”管理工具中,右键单击要配置的组件,然后单击“属性”。 
- 如果尚未将 ConstructionEnabled 特性设置为 True,则在“属性”对话框的“激活”选项卡上,选中“启用对象构造”复选框,以启用对象构造字符串。 
- 如果要更改使用 ConstructionEnabled 属性指定的默认构造字符串,请在“构造函数字符串”****框中输入构造字符串。 
示例
Imports System.EnterpriseServices
Imports System
Imports System.Data
Imports System.Data.SqlClient
<assembly: ApplicationName("OCDemo")>
Namespace OCDemo 
    <ConstructionEnabled([Default] := "Initial Catalog=Northwind;
       Data Source=.\\SQLServerInstance;Trusted_Connection=yes")> _
    Public Class TestObjectConstruct 
         Inherits ServicedComponent
      Private m_connectStr As String
      Private conn as SqlConnection
      Protected Overrides Sub Construct(constructString As String)
      ' Called after constructor.
        m_connectStr = constructString
      End Sub 
      Public Sub ConnectToDatabase()
          conn = New SqlConnection(m_connectStr)
      End Sub 
    End Class 
End Namespace 
using System;
using System.EnterpriseServices;
using System.Data;
using System.Data.SqlClient;
[assembly : ApplicationName("OCDemo")]
namespace OCDemo
{
    [ConstructionEnabled(Default="Initial Catalog=Northwind;
       Data Source=.\\SQLServerInstance;Trusted_Connection=yes")]
    public class TestObjectConstruct : ServicedComponent
    {
      private string connectStr;
      SqlConnection conn;
      public TestObjectConstruct()
      {
        …
      }
      protected override void Construct(string constructString)
      {
         // Called after constructor.
         connectStr = constructString;
     }
     public void ConnectToDatabase()
     {
          conn = new SqlConnection(connectStr);
          conn.Open();
     }
    }
}
请参见
参考
ConstructionEnabledAttribute
System.EnterpriseServices
概念
.gif)
版权所有 (C) 2007 Microsoft Corporation。保留所有权利。