(German version below)
For those who are new to BizTalk RFID or have not used it in a while, here is a recap of the minimal requirements for implementing a EventHandler component.
- Inherit from RfidEventHandlerBase
- Parameterless constructor must be accessible
- Implement public static method RfidEventHandlerMetadata
- Override method Init
- Mark at least one method with attribute [RfidEventHandlerMethod] with signature:
- Accepting one parameter of type RfidEventBase or RfidEventBase[] (or derived from those)
- Returning RfidEventBase or RfidEventBase[] (or derived from those) or void
- Return-type void specifies an EventSink
- Typical EventHandler will use type TagReadEvent and TagListEvent
A minimal EventHandler would look like this:
using System; using System.Text; using System.Collections.Generic; using Microsoft.SensorServices.Rfid; using Microsoft.SensorServices.Rfid.Utilities; namespace MinimalEventHandler { public class MyEventHandler : RfidEventHandlerBase { public static RfidEventHandlerMetadata GetEventHandlerMetadata(bool vendorextensionalso) { return null; } public override void Init(Dictionary<String, object> parameters, RfidProcessContext container) { } [RfidEventHandlerMethod] public RfidEventBase MyEventHandlerMethod( RfidEventBase myEvent) { return myEvent; } } } |
Alternatively "MyEventHandlerMethod" could look like this:
public RfidEventBase MyEventHandlerMethod(RfidEventBase[] myEvent) |
or
public RfidEventBase[] MyEventHandlerMethod(RfidEventBase myEvent) |
or
public RfidEventBase[] MyEventHandlerMethod(RfidEventBase[] myEvent) |
or in case you would want to create an EventSink
public void MyEventHandlerMethod(RfidEventBase myEvent) |
or
public void MyEventHandlerMethod(RfidEventBase[] myEvent) |
In a "real life" scenario you typically would choose TagReadEvent and TagListEvent instead of RfidEventBase.
German version:
Für Einsteiger in BizTalk RFID oder Kollegen, welche BizTalk RFID längere Zeit nicht nutzten, hier eine kurze Zusammenfassung der Minimalanforderungen, welche eine EventHandler-Komponente zu erfüllen hat.
- Von RfidEventHandlerBase ableiten
- Parameterloser constructor must erreichbar sein
- Die public-statische Methode method RfidEventHandlerMetadata muss implementiert werden
- Überschreiben (Override) der Init-Methode
- Mindestens eine Methode muss mit dem Attribut [RfidEventHandlerMethod] markiert werde und folgende Signatur haben:
- Akzeptieren eines Parameters des Typs RfidEventBase oder RfidEventBase[] (oder ein hiervon abgeleiteter Typ)
- Zurückgeben von RfidEventBase oder RfidEventBase[] (oder ein hiervon abgeleiteter Typ) oder void
- Rückgabe-Typ void spezifiziert, dass ein EventSink vorliegt.
- Ein typischer EventHandler verwendet die Typen TagReadEvent und TagListEvent
Ein minimaler EventHandler würde folgendermassen Aussehen:
using System; using System.Text; using System.Collections.Generic; using Microsoft.SensorServices.Rfid; using Microsoft.SensorServices.Rfid.Utilities; namespace MinimalEventHandler { public class MyEventHandler : RfidEventHandlerBase { public static RfidEventHandlerMetadata GetEventHandlerMetadata(bool vendorextensionalso) { return null; } public override void Init(Dictionary<String, object> parameters, RfidProcessContext container) { } [RfidEventHandlerMethod] public RfidEventBase MyEventHandlerMethod( RfidEventBase myEvent) { return myEvent; } } } |
Alternativ könnte "MyEventHandlerMethod" so aussehen:
public RfidEventBase MyEventHandlerMethod(RfidEventBase[] myEvent) |
oder
public RfidEventBase[] MyEventHandlerMethod(RfidEventBase myEvent) |
oder
public RfidEventBase[] MyEventHandlerMethod(RfidEventBase[] myEvent) |
oder im Falle man einen EventSink erzeugen möchte:
public void MyEventHandlerMethod(RfidEventBase myEvent) |
oder
public void MyEventHandlerMethod(RfidEventBase[] myEvent) |
In einem realen Szenario würde man typischerweise TagReadEvent und TagListEvent anstatt RfidEventBase wählen.
Posted
Oct 08 2007, 03:12 AM
by
Andreas Erben
Filed under: BizTalk 2006, BizTalk RFID, RFID, BizTalk 2006 R2, BizTalk, BizTalk Server 2006, BizTalk Server 2006 R2, BizTalk Server, German, deutsch, .NET