次の方法で共有


BusinessLogicHandler クラス

ビジネス ロジック ハンドラーを実装するマネージ コード アセンブリのサーバーへの登録内容を表します。

継承階層

System.Object
  Microsoft.SqlServer.Replication.BusinessLogicHandler

名前空間:  Microsoft.SqlServer.Replication
アセンブリ:  Microsoft.SqlServer.Rmo (Microsoft.SqlServer.Rmo.dll)

構文

'宣言
Public NotInheritable Class BusinessLogicHandler
'使用
Dim instance As BusinessLogicHandler
public sealed class BusinessLogicHandler
public ref class BusinessLogicHandler sealed
[<SealedAttribute>]
type BusinessLogicHandler =  class end
public final class BusinessLogicHandler

BusinessLogicHandler 型は、以下のメンバーを公開しています。

コンストラクター

  名前 説明
パブリック メソッド BusinessLogicHandler BusinessLogicHandler クラスの新しいインスタンスを初期化します。

先頭に戻る

プロパティ

  名前 説明
パブリック プロパティ DotNetAssemblyName ビジネス ロジック ハンドラーを実装するアセンブリの名前を取得します。値の設定も可能です。
パブリック プロパティ DotNetClassName ビジネス ロジック ハンドラーを実装するクラスの名前を取得します。値の設定も可能です。
パブリック プロパティ FriendlyName サーバーにビジネス ロジック ハンドラーを登録する際の名前を取得します。値の設定も可能です。
パブリック プロパティ IsDotNetAssembly 登録されているビジネス ロジック ハンドラーがマネージ コード アセンブリであるかどうかを示す値を取得または設定します。
パブリック プロパティ UserData ユーザーが独自のデータをアタッチできるオブジェクトを取得します。値の設定も可能です。

先頭に戻る

メソッド

  名前 説明
パブリック メソッド CheckValidDefinition インフラストラクチャです。定義が有効かどうかを示します。
パブリック メソッド Equals (Object から継承されています。)
パブリック メソッド GetHashCode (Object から継承されています。)
パブリック メソッド GetType (Object から継承されています。)
パブリック メソッド ToString (Object から継承されています。)

先頭に戻る

説明

ビジネス ロジック ハンドラーは、RegisterBusinessLogicHandler を呼び出すことで登録されます。 RegisterBusinessLogicHandler を呼び出す前に、BusinessLogicHandler オブジェクトのプロパティを設定する必要があります。

ビジネス ロジック ハンドラーの登録は、UnregisterBusinessLogicHandler を呼び出すことで削除されます。

サーバーに登録されているビジネス ロジック ハンドラーの一覧を取得するには、EnumBusinessLogicHandlers を呼び出します。

使用例

          // Specify the Distributor name and business logic properties.
            string distributorName = publisherInstance;
            string assemblyName = @"C:\Program Files\Microsoft SQL Server\110\COM\CustomLogic.dll";
            string className = "Microsoft.Samples.SqlServer.BusinessLogicHandler.OrderEntryBusinessLogicHandler";
            string friendlyName = "OrderEntryLogic";

            ReplicationServer distributor;
            BusinessLogicHandler customLogic;

                // Create a connection to the Distributor.
            ServerConnection distributorConn = new ServerConnection(distributorName);

            try
            {
                // Connect to the Distributor.
                distributorConn.Connect();

                // Set the Distributor properties.
                distributor = new ReplicationServer(distributorConn);

                // Set the business logic handler properties.
                customLogic = new BusinessLogicHandler();
                customLogic.DotNetAssemblyName = assemblyName;
                customLogic.DotNetClassName = className;
                customLogic.FriendlyName = friendlyName;
                customLogic.IsDotNetAssembly = true;

                Boolean isRegistered = false;

                // Check if the business logic handler is already registered at the Distributor.
                foreach (BusinessLogicHandler registeredLogic
                    in distributor.EnumBusinessLogicHandlers())
                {
                    if (registeredLogic == customLogic)
                    {
                        isRegistered = true;
                    }
                }

                // Register the custom logic.
                if (!isRegistered)
                {
                    distributor.RegisterBusinessLogicHandler(customLogic);
                }
            }
            catch (Exception ex)
            {
                // Do error handling here.
                throw new ApplicationException(string.Format(
                    "The {0} assembly could not be registered.",
                    assemblyName), ex);
            }
            finally
            {
                distributorConn.Disconnect();
            }
' Specify the Distributor name and business logic properties.
Dim distributorName As String = publisherInstance
Dim assemblyName As String = "C:\Program Files\Microsoft SQL Server\110\COM\CustomLogic.dll"
Dim className As String = "Microsoft.Samples.SqlServer.BusinessLogicHandler.OrderEntryBusinessLogicHandler"
Dim friendlyName As String = "OrderEntryLogic"

Dim distributor As ReplicationServer
Dim customLogic As BusinessLogicHandler

' Create a connection to the Distributor.
Dim distributorConn As ServerConnection = New ServerConnection(distributorName)

Try
    ' Connect to the Distributor.
    distributorConn.Connect()

    ' Set the Distributor properties.
    distributor = New ReplicationServer(distributorConn)

    ' Set the business logic handler properties.
    customLogic = New BusinessLogicHandler()
    customLogic.DotNetAssemblyName = assemblyName
    customLogic.DotNetClassName = className
    customLogic.FriendlyName = friendlyName
    customLogic.IsDotNetAssembly = True

    Dim isRegistered As Boolean = False

    ' Check if the business logic handler is already registered at the Distributor.
    For Each registeredLogic As BusinessLogicHandler _
    In distributor.EnumBusinessLogicHandlers
        If registeredLogic Is customLogic Then
            isRegistered = True
        End If
    Next

    ' Register the custom logic.
    If Not isRegistered Then
        distributor.RegisterBusinessLogicHandler(customLogic)
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException(String.Format( _
     "The {0} assembly could not be registered.", _
     assemblyName), ex)
Finally
    distributorConn.Disconnect()
End Try

スレッド セーフ

この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。

関連項目

参照

Microsoft.SqlServer.Replication 名前空間

その他の技術情報

マージ アーティクルにビジネス ロジック ハンドラーを実装する方法 (RMO プログラミング)