SinkProviderData クラス
アセンブリ: mscorlib (mscorlib.dll 内)


シンク プロバイダ データは、<provider> 要素 (テンプレート) 構成ノードに格納されているツリー構造の構成情報です。すべてのシンク プロバイダを構成ファイルから使用する場合、すべてのシンク プロバイダは、プロパティの IDictionary およびこれらの構造体の ICollection を受け入れるコンストラクタを持つ必要があります。

Public Class MySinkProviderData Implements IServerChannelSinkProvider Private myIServerChannelSinkProviderNew As IServerChannelSinkProvider Private myAcceptMode As Boolean = True Private myCollectionData As ICollection = Nothing Public Sub New() End Sub 'New Public Sub New(properties As IDictionary, providerData As ICollection) Dim myMode As String = CType(properties("mode"), String) If String.Compare(myMode, "accept", True) = 0 Then myAcceptMode = True Else If String.Compare(myMode, "reject", True) = 0 Then myAcceptMode = False End If End If myCollectionData = providerData End Sub 'New <SecurityPermission(SecurityAction.Demand, Flags := SecurityPermissionFlag.Infrastructure)> _ Public Sub GetChannelData(myLocalChannelData As IChannelDataStore) Implements _ IServerChannelSinkProvider.GetChannelData End Sub 'GetChannelData <SecurityPermission(SecurityAction.Demand, Flags := SecurityPermissionFlag.Infrastructure)> _ Public Function CreateSink(myChannel As IChannelReceiver) As IServerChannelSink Implements _ IServerChannelSinkProvider.CreateSink Dim myIServerChannelSink_nextSink As IServerChannelSink = Nothing If Not (myIServerChannelSinkProviderNew Is Nothing) Then myIServerChannelSink_nextSink = myIServerChannelSinkProviderNew.CreateSink(myChannel) End If Dim mySink As New MyIPFilterChannelSink(myAcceptMode, myIServerChannelSink_nextSink) ' Create and initialize a new ArrayList. Dim myArrayList As New ArrayList() ' Add filters. Dim mySinkData As SinkProviderData For Each mySinkData In myCollectionData ' The SinkProviderData properties are added to the ArrayList. myArrayList.Add(mySinkData.Children) myArrayList.Add(mySinkData.Name) Dim myMaskString As String = CType(mySinkData.Properties("mask"), String) Dim myIPString As String = CType(mySinkData.Properties("ip"), String) Dim myMachineString As String = CType(mySinkData.Properties("machine"), String) Dim mask As IPAddress = Nothing Dim ip As IPAddress = Nothing If Not (myIPString Is Nothing) Then mask = IPAddress.Parse(myMaskString) ip = IPAddress.Parse(myIPString) Else mask = IPAddress.Parse("255.255.255.255") ip = Dns.Resolve(myMachineString).AddressList(0) End If mySink.AddFilter(mask, ip) Next mySinkData Console.WriteLine("The Count of the ArrayList is :" + myArrayList.Count.ToString()) Console.WriteLine("The values in the SinkProviderData collection are:") ' Call the PrintValues function to enumerate and print values to the console. PrintValues(myArrayList) Return mySink End Function 'CreateSink Public Property [Next]() As IServerChannelSinkProvider Implements _ IServerChannelSinkProvider.Next <SecurityPermission(SecurityAction.Demand, Flags := SecurityPermissionFlag.Infrastructure)> _ Get Return myIServerChannelSinkProviderNew End Get <SecurityPermission(SecurityAction.Demand, Flags := SecurityPermissionFlag.Infrastructure)> _ Set myIServerChannelSinkProviderNew = value End Set End Property Public Property Mode() As FilterMode Get Return(IIf(myAcceptMode ,FilterMode.Accept ,FilterMode.Reject)) End Get Set(ByVal Value As FilterMode) If Value = FilterMode.Accept Then myAcceptMode = Value End If End Set End Property Public Shared Sub PrintValues(myList As IEnumerable) Dim myEnumerator As IEnumerator = myList.GetEnumerator() While myEnumerator.MoveNext() Console.Write(ControlChars.Tab + "{0}", myEnumerator.Current) End While Console.WriteLine() End Sub 'PrintValues End Class 'MySinkProviderData ' class MySinkProviderData
public class MySinkProviderData : IServerChannelSinkProvider { private IServerChannelSinkProvider myIServerChannelSinkProviderNew; private bool myAcceptMode = true; private ICollection myCollectionData = null; public MySinkProviderData() { } public MySinkProviderData(IDictionary properties, ICollection providerData) { String myMode = (String)properties["mode"]; if (String.Compare(myMode, "accept", true) == 0) myAcceptMode = true; else if (String.Compare(myMode, "reject", true) == 0) myAcceptMode = false; myCollectionData = providerData; } [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)] public void GetChannelData(IChannelDataStore myLocalChannelData) { } [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)] public IServerChannelSink CreateSink(IChannelReceiver myChannel) { IServerChannelSink myIServerChannelSink_nextSink = null; if (myIServerChannelSinkProviderNew != null) myIServerChannelSink_nextSink = myIServerChannelSinkProviderNew.CreateSink(myChannel); MyIPFilterChannelSink mySink = new MyIPFilterChannelSink(myAcceptMode , myIServerChannelSink_nextSink); // Create and initialize a new ArrayList. ArrayList myArrayList = new ArrayList(); // Add filters. foreach (SinkProviderData mySinkData in myCollectionData) { // The SinkProviderData properties are added to the ArrayList. myArrayList.Add(mySinkData.Children); myArrayList.Add(mySinkData.Name); String myMaskString = (String)mySinkData.Properties["mask"]; String myIPString = (String)mySinkData.Properties["ip"]; String myMachineString = (String)mySinkData.Properties["machine"]; IPAddress mask = null; IPAddress ip = null; if (myIPString != null) { mask = IPAddress.Parse(myMaskString); ip = IPAddress.Parse(myIPString); } else { mask = IPAddress.Parse("255.255.255.255"); ip = Dns.Resolve(myMachineString).AddressList[0]; } mySink.AddFilter(mask, ip); } Console.WriteLine("The Count of the ArrayList is :"+ myArrayList.Count); Console.WriteLine("The values in the SinkProviderData collection are:"); // Call the PrintValues function to enumerate and print values to the console. PrintValues( myArrayList ); return mySink; } public IServerChannelSinkProvider Next { [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)] get { return myIServerChannelSinkProviderNew; } [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)] set { myIServerChannelSinkProviderNew = value; } } public FilterMode Mode { get { return (myAcceptMode ? FilterMode.Accept : FilterMode.Reject); } set { myAcceptMode = (value == FilterMode.Accept); } } public static void PrintValues( IEnumerable myList ) { IEnumerator myEnumerator = myList.GetEnumerator(); while ( myEnumerator.MoveNext() ) Console.Write( "\t{0}", myEnumerator.Current ); Console.WriteLine(); } } // class MySinkProviderData

System.Runtime.Remoting.Channels.SinkProviderData


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SinkProviderData コンストラクタ
アセンブリ: mscorlib (mscorlib.dll 内)


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


SinkProviderData プロパティ

名前 | 説明 | |
---|---|---|
![]() | Children | 子 SinkProviderData ノードのリストを取得します。 |
![]() | Name | 現在の SinkProviderData オブジェクトのデータが関連付けられているシンク プロバイダの名前を取得します。 |
![]() | Properties | シンク プロバイダ上のプロパティにアクセスするために使用するディクショナリを取得します。 |

SinkProviderData メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

SinkProviderData メンバ
シンク プロバイダのシンク プロバイダ データを格納します。
SinkProviderData データ型で公開されるメンバを以下の表に示します。


名前 | 説明 | |
---|---|---|
![]() | Children | 子 SinkProviderData ノードのリストを取得します。 |
![]() | Name | 現在の SinkProviderData オブジェクトのデータが関連付けられているシンク プロバイダの名前を取得します。 |
![]() | Properties | シンク プロバイダ上のプロパティにアクセスするために使用するディクショナリを取得します。 |

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- SinkProviderDataのページへのリンク