SinkProviderDataとは? わかりやすく解説

SinkProviderData クラス

シンク プロバイダシンク プロバイダ データ格納します

名前空間: System.Runtime.Remoting.Channels
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

<ComVisibleAttribute(True)> _
Public Class SinkProviderData
Dim instance As SinkProviderData
[ComVisibleAttribute(true)] 
public class SinkProviderData
[ComVisibleAttribute(true)] 
public ref class SinkProviderData
/** @attribute ComVisibleAttribute(true) */ 
public class SinkProviderData
ComVisibleAttribute(true) 
public class SinkProviderData
解説解説
使用例使用例
   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.Object
  System.Runtime.Remoting.Channels.SinkProviderData
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SinkProviderData メンバ
System.Runtime.Remoting.Channels 名前空間

SinkProviderData コンストラクタ


SinkProviderData プロパティ


パブリック プロパティパブリック プロパティ

参照参照

関連項目

SinkProviderData クラス
System.Runtime.Remoting.Channels 名前空間

SinkProviderData メソッド


SinkProviderData メンバ

シンク プロバイダシンク プロバイダ データ格納します

SinkProviderData データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド SinkProviderData SinkProviderData クラス新しインスタンス初期化します。
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SinkProviderData クラス
System.Runtime.Remoting.Channels 名前空間



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「SinkProviderData」の関連用語

SinkProviderDataのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SinkProviderDataのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS