Observable.FromEventPattern<TEventArgs> Yöntemi (Nesne, Dize)
Standart .NET olay desenine uygun bir .NET olayını gözlemlenebilir bir diziye dönüştürür ve bir örnek olayı bulmak için yansımayı kullanarak.
Ad Alanı:System.Reactive.Linq
Derleme: System.Reactive (System.Reactive.dll içinde)
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.
Tür Parametreleri
- Teventargs
Olayın türü.
Parametreler
- Hedef
Tür: System.Object
Dönüştürülecek olayı kullanıma sunan nesne örneği.
- eventName
Tür: System.String
Dönüştürülecek olayın adı.
Dönüş Değeri
Tür: System.IObservable<EventPattern<TEventArgs>>
Dönüş değeri, temel alınan .NET olayının çağrılarının veri gösterimlerini içeren gözlemlenebilir bir dizidir.
Açıklamalar
FromEventPattern işleci bir .Net olayını EventPattern<TEventArgs> dizisine dönüştürür. Her EventPattern örneği olay bağımsız değişkenlerini ve olayı gönderen nesneyi içerir. Olay bağımsız değişkenleri, sırayla teslim edilen her EventPattern'in EventArgs özelliğinde sağlanır. Olayı gönderen nesne EventPattern örneğinin Sender özelliğinde sağlanır. İstenen olay, olayı kullanıma sunan nesne hedef parametre olarak geçirilerek ve eventName parametresi olayın adına ayarlanarak belirtilir. TEventArgs türü, her olayla birlikte teslim edilecek olay bağımsız değişkenlerinin türünü belirtir.
Örnekler
Bu örnek kod, System.IO.FileSystemWatcher üzerindeki Create, Rename ve Delete olaylarını dinlemek için FromEventPattern işlecini kullanmayı gösterir. Örnek, C:\Users\Public klasöründeki değişiklikleri izler ve olayları konsol penceresine yazar.
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();
}
}
}
Aşağıdaki çıkış, C:\Users\Public dizininde yeni bir metin dosyası oluşturmak için örnek kodu çalıştırmayı gösterir. Dosya ExFile.txt olarak yeniden adlandırılır ve sonra silinir.
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.