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.
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 gehenWie 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 gehenBitdefender 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
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
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