方法 :オブジェクト構築を構成する
次の手順と例では、オブジェクト構築を構成し、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 プロパティを設定します。たとえば、次のコードでは、
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 { … }
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
概念
Copyright © 2007 by Microsoft Corporation.All rights reserved.