BizTalk Rfid EventHandler recap - Andreas Erben's posts - developers.de

BizTalk Rfid EventHandler recap

(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
developers.de is a .Net Community Blog powered by daenet GmbH.