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 名前空間



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

辞書ショートカット

すべての辞書の索引

「SinkProviderData クラス」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS