Observable.FromEventPattern<TEventArgs-Methode> (Object, String)
Konvertiert ein .NET-Ereignis, das dem standardmäßigen .NET-Ereignismuster entspricht, in eine beobachtbare Sequenz, wobei reflektion verwendet wird, um ein instance-Ereignis zu finden.
Namespace:System.Reactive.Linq
Versammlung: System.Reactive (in System.Reactive.dll)
Syntax
'Declaration
Public Shared Function FromEventPattern(Of TEventArgs As EventArgs) ( _
target As Object, _
eventName As String _
) As IObservable(Of EventPattern(Of TEventArgs))
'Usage
Dim target As Object
Dim eventName As String
Dim returnValue As IObservable(Of EventPattern(Of TEventArgs))
returnValue = Observable.FromEventPattern(target, _
eventName)
public static IObservable<EventPattern<TEventArgs>> FromEventPattern<TEventArgs>(
Object target,
string eventName
)
where TEventArgs : EventArgs
public:
generic<typename TEventArgs>
where TEventArgs : EventArgs
static IObservable<EventPattern<TEventArgs>^>^ FromEventPattern(
Object^ target,
String^ eventName
)
static member FromEventPattern :
target:Object *
eventName:string -> IObservable<EventPattern<'TEventArgs>> when 'TEventArgs : EventArgs
JScript does not support generic types and methods.
Typparameter
- TEventArgs
Art des Ereignisses.
Parameter
- target
Typ: System.Object
Das -Objekt instance, das das zu konvertierende Ereignis verfügbar macht.
- eventName
Typ: System.String
Der Name des zu konvertierenden Ereignisses.
Rückgabewert
Typ: System.IObservable<EventPattern<TEventArgs>>
Der Rückgabewert ist eine beobachtbare Sequenz, die Datendarstellungen von Aufrufen des zugrunde liegenden .NET-Ereignisses enthält.
Bemerkungen
Der FromEventPattern-Operator konvertiert ein .NET-Ereignis in eine Sequenz von EventPattern<TEventArgs>. Jede EventPattern-instance enthält die Ereignisargumente und das Objekt, das das Ereignis sendet. Die Ereignisargumente werden in der EventArgs-Eigenschaft jedes EventPattern-Objekts bereitgestellt, das in der Sequenz bereitgestellt wird. Das Objekt, das das Ereignis sendet, wird in der Sender-Eigenschaft des EventPattern-instance bereitgestellt. Das gewünschte Ereignis wird angegeben, indem das Objekt übergeben wird, das das Ereignis als Zielparameter verfügbar macht, und indem der eventName-Parameter auf den Namen des Ereignisses festgelegt wird. Der TEventArgs-Typ gibt den Typ der Ereignisargumente an, die mit jedem Ereignis übermittelt werden.
Beispiele
Dieser Beispielcode veranschaulicht die Verwendung des FromEventPattern-Operators zum Lauschen auf Create-, Rename- und Delete-Ereignisse für system.IO.FileSystemWatcher. Das Beispiel überwacht Änderungen im Ordner C:\Users\Public und schreibt die Ereignisse in das Konsolenfenster.
using System;
using System.Reactive.Linq;
using System.Reactive;
using System.IO;
namespace Example
{
class Program
{
static void Main()
{
//*********************************************************************************************************************//
//*** Create a FileSystemWatcher to watch the C:\Users\Public directory using the default NotifyFilter watching for ***//
//*** changes to any type of file. ***//
//*********************************************************************************************************************//
FileSystemWatcher fsw = new FileSystemWatcher(@"C:\Users\Public", "*.*");
fsw.EnableRaisingEvents = true;
//***************************************************************************************//
//*** Use the FromEventPattern operator to setup a subscription to the Created event. ***//
//***************************************************************************************//
IObservable<EventPattern<FileSystemEventArgs>> fswCreated = Observable.FromEventPattern<FileSystemEventArgs>(fsw, "Created");
fswCreated.Subscribe(pattern => Console.WriteLine("{0} was created in {1}.", pattern.EventArgs.Name, ((FileSystemWatcher)pattern.Sender).Path));
//***************************************************************************************//
//*** Use the FromEventPattern operator to setup a subscription to the Renamed event. ***//
//***************************************************************************************//
IObservable<EventPattern<RenamedEventArgs>> fswRenamed = Observable.FromEventPattern<RenamedEventArgs>(fsw, "Renamed");
fswRenamed.Subscribe(pattern => Console.WriteLine("{0} was renamed to {1} in {2}.", pattern.EventArgs.OldName,
pattern.EventArgs.Name, ((FileSystemWatcher)pattern.Sender).Path));
//***************************************************************************************//
//*** Use the FromEventPattern operator to setup a subscription to the Deleted event. ***//
//***************************************************************************************//
IObservable<EventPattern<FileSystemEventArgs>> fswDeleted = Observable.FromEventPattern<FileSystemEventArgs>(fsw, "Deleted");
fswDeleted.Subscribe(pattern => Console.WriteLine("{0} was deleted in {1}.", pattern.EventArgs.Name, ((FileSystemWatcher)pattern.Sender).Path));
Console.WriteLine("Press ENTER to exit...\n");
Console.ReadLine();
}
}
}
Die folgende Ausgabe veranschaulicht die Ausführung des Beispielcodes zum Erstellen einer neuen Textdatei im Verzeichnis C:\Users\Public. Die Datei wird in ExFile.txt umbenannt und anschließend gelöscht.
Press ENTER to exit...
New Text Document.txt was created in C:\Users\Public.
New Text Document.txt was renamed to ExFile.txt in C:\Users\Public.
ExFile.txt was deleted in C:\Users\Public.