SinkProviderData Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Przechowuje dane dostawcy ujścia dla dostawców ujścia.
public ref class SinkProviderData
public class SinkProviderData
[System.Runtime.InteropServices.ComVisible(true)]
public class SinkProviderData
type SinkProviderData = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type SinkProviderData = class
Public Class SinkProviderData
- Dziedziczenie
-
SinkProviderData
- Atrybuty
Przykłady
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;
}
public void GetChannelData(IChannelDataStore myLocalChannelData)
{
}
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
{
get
{
return myIServerChannelSinkProviderNew;
}
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
Public Class MySinkProviderData
Implements IServerChannelSinkProvider
Private myIServerChannelSinkProviderNew As IServerChannelSinkProvider
Private myAcceptMode As Boolean = True
Private myCollectionData As ICollection = Nothing
Public Sub New()
End Sub
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
<SecurityPermission(SecurityAction.Demand, Flags := SecurityPermissionFlag.Infrastructure)> _
Public Sub GetChannelData(myLocalChannelData As IChannelDataStore) Implements _
IServerChannelSinkProvider.GetChannelData
End Sub
<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
End Class
' class MySinkProviderData
Uwagi
Dane dostawcy ujścia to struktura drzewa informacji o konfiguracji przechowywanych w <węzłach konfiguracji elementu dostawcy> (szablon). Wszyscy dostawcy ujścia muszą mieć konstruktor, który akceptuje IDictionary właściwości i ICollection te struktury, jeśli chcą być używane z pliku konfiguracji.
Konstruktory
SinkProviderData(String) |
Inicjuje nowe wystąpienie klasy SinkProviderData. |
Właściwości
Children |
Pobiera listę węzłów podrzędnych SinkProviderData . |
Name |
Pobiera nazwę dostawcy ujścia, z którą są skojarzone dane w bieżącym SinkProviderData obiekcie. |
Properties |
Pobiera słownik, za pomocą którego można uzyskać dostęp do właściwości dostawcy ujścia. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera bieżące wystąpienie. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |