オブジェクト構築

COM+ オブジェクト構築を使用すると、外部から初期化情報を指定できるため、クラス内に構成情報をハードコーディングする必要がなくなります。オブジェクト プーリングと組み合わせてオブジェクト コンストラクタを使用すると、リソース ディスペンサの機能が提供されます。そのため、完全なリソース ディスペンサを実装する必要はありません。

オブジェクト構築を設定するには、System.EnterpriseServices.ServicedComponent クラスから派生させたクラスに ConstructionEnabledAttribute 属性を適用します。

TestObjectConstruct クラスの既定のプロパティ値を文字列 "Hello world" に設定する例を次に示します。

サーバー

Imports System.EnterpriseServices
Imports System
<assembly: ApplicationName("OCDemo")>

Namespace OCDemo 
<ConstructionEnabled([Default] := "Hello world")> _
      Public Class TestObjectConstruct 
      Inherits ServicedComponent
            Public Sub New()
                  ' First method to be called.
            End Sub 

            Public Overrides Sub Construct(constructString As String)
                  ' Called after constructor.
            End Sub 

            Public Sub DoWork()
            End Sub 
      End Class 
End Namespace 
[C#]
using System;
using System.EnterpriseServices;
[assembly : ApplicationName("OCDemo")]

namespace OCDemo
{
      [ConstructionEnabled(Default="Hello world")]
      public class TestObjectConstruct : ServicedComponent
      {
            public TestObjectConstruct()
            {
                  // First method to be called.
            }
            public override void Construct(string constructString)
            {
                  // Called after constructor.
            }
            public void DoWork () {}
      }
}

クライアント

Public Class App
      Overloads Public Shared Sub Main()
            Dim order As New TestObjectConstruct()
            order.DoWork()
      End Sub
End Class
[C#]
public class App
{
      public static int Main()
      {
            TestObjectConstruct order = new TestObjectConstruct();
            order.DoWork();
      }
}

参照

利用可能な COM+ サービスの概要 | ConstructionEnabledAttribute クラス | System.EnterpriseServices