Aracılığıyla paylaş


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.

Ayrıca Bkz.

Başvuru

Gözlemlenebilir Sınıf

FromEventPattern Aşırı Yüklemesi

System.Reactive.Linq Ad Alanı