方法 :オブジェクト構築を構成する

次の手順と例では、オブジェクト構築を構成し、TestObjectConstruct クラスの既定の初期化文字列を文字列 "Initial Catalog=Northwind;Data Source=.\\SQLServerInstance;Trusted_Connection=yes" に設定する方法を説明します。この文字列は、SQL Server データベースの接続に使用されます。トピック「オブジェクト構築」では、ServicedComponent クラスからの COM+ オブジェクト構築の使用について詳しく説明します。

オブジェクト構築を構成し、クラスの既定の初期化文字列を設定するには

  1. 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
    {
       …
    }
    
  2. クラスに ConstructionEnabledAttribute 属性を適用し、属性の Default プロパティを設定します。たとえば、次のコードでは、TestObjectConstruct クラスに ConstructionEnabledAttribute 属性を適用し、Default プロパティを SQL サーバーの接続文字列に設定します。

    <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
    {
        …
    }
    
  3. 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();
         }
    }
    
  4. クライアント アプリケーションでは、既定値が使用されるように、構築文字列を指定せずにコンポーネント クラスのインスタンスを作成します。たとえば、次のコードでは、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();
          }
    }
    

コンポーネント サービス アプリケーションをインストールすると、コンポーネント サービス管理ツールを使用して構築文字列を指定できるようになります。コンポーネントのオブジェクト構築文字列を入力するには、次の手順を実行します。

  1. コンポーネント サービス管理ツールを起動します。

  2. コンポーネント サービス管理ツールで、構成するコンポーネントを右クリックし [プロパティ] をクリックします。

  3. ConstructionEnabled 属性を True に設定していない場合は、[プロパティ] ダイアログ ボックスの [アクティベーション] タブで、[オブジェクトの構築を有効にする] チェック ボックスをオンにして、オブジェクト構築文字列の使用を有効にします。

  4. 構築文字列を 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

概念

オブジェクト構築
利用可能な COM+ サービスの概要

Footer image

Copyright © 2007 by Microsoft Corporation.All rights reserved.