Simpler code in handlers using pattern matching

The pattern matching feature which came with c# 7 can be very useful when writing XMPP stanza handlers with MatriX. The MatriX vNext handlers are using predicates to filter and match stanzas. Sometimes the predicates can get very complex and would require a lot of type casts without pattern matching. So pattern matching makes you code much more readable, but also faster at runtime because we can save some casts of objects. Here is a small code snippet of a stanza handler which is responsible for XMPP roster pushes. Code without pattern matching public class RosterHandler : XmppStanzaHandler { public RosterHandler() { // handle roster pushed Handle( el => el.OfType<Iq>() && el.Cast<Iq>().Query.OfType<Roster>() && (el.Cast<Iq>().Type == IqType.Result || el.Cast<Iq>().Type == IqType.Set), async (context, xmppXElement) => { // do something with the stanza }); } } Code with pattern matching The sample below used also the **IsAnyOf** extension method which was added to MatriX recently // With pattern matching public class RosterHandler : XmppStanzaHandler { public RosterHandler() { // handle roster pushes Handle( el => el is Iq iq && iq.Query is Roster && iq.Type.IsAnyOf(IqType.Result, IqType.Set), async (context, xmppXElement) => { // do something with the stanza }); } } of course you can use XPath or other technologies fore more complex stanza filtering in MatriX. I personally just prefer predicates becuase they are strongly typed and also fast.

zum Artikel gehen

Co-Founder*in Matching mit der Founders Foundation

Gemeinsam veranstalten wir ein Co-Founder-Matching mit der Founders Foundation in Bielefeld!  Dazu fahren alle Münsteraner*innen gemeinsam aus Münster um 17 Uhr mit dem Zug in Richtung Bielefeld, um dort deinen passenden Co-Founder*in für dich zu finde

zum Artikel gehen

Nokia 6230 + 6230i Sicherheitscode

Wie oft hast du denn versucht den Code einzugeben? Bin mir nicht 100% Sicher aber wenn man mehr als 5x den falschen Code eingegeben hat, bleibt das Telefon dauerhaft gesperrt. Kann dann nur jemand machen mit Datenkabel und Windows XP. Codes aus dem Netz h

zum Artikel gehen

HVI als Open Source erhältlich

Bitdefender hat sein Endpunkt-Sicherheitssystem "Hypervisor Introspection" als Open Source verfügbar gemacht. Die Technologie sucht nach Angriffsverfahren wie Pufferüberläufen, Heap-Spray und Code-Injektion, um schädliche Aktivitäten zu erkennen

zum Artikel gehen

Introducing MatriX vNext

We are thrilled to announce the next generation of the MatriX XMPP libraries. 15 years elapsed already since we started our first .NET/c# XMPP library agsXMPP with .NET 1.0. Our XMPP libraries and the .NET technologies had many major evolutions over the

zum Artikel gehen

Probleme mit Autohaus, wie original Scheinwerfer erkennen

Hi Leute, ich habe mir vor einigen Wochen einen gebrauchten Leon Fr bei einem Händler gekauft, da solllte unter anderem der Scheinwerfer noch getauscht werden (wurde im Vertrag festgehalten). Nur leider gab es da jetzt ziemliche Schwierigkeiten seitens de

zum Artikel gehen