Iteam
GitHub

Använd flera parametrar i MatchEvaluator

För att enkelt skicka in parametrar till MatchEvaluator så använder man bäst lambda-uttryck. Såhär gör man:

När man använder RegEx för att ersätta delar i en text så använder man ofta MatchEvaluator för att modifiera den nya strängen. Det kan handla om allt från enkla ändringar som t.ex stor bokstav i början av ett ord till mer komplexa ändringar som att byta ut markeringstext mot dynamiskt genererat innehåll eller att byta ut Youtube-länkar mot embedkod som visar en filmspelare.

Problemet är att den vanliga delegate-typen för MatchEvaluator bara tar en enda parameter och för att komma runt denna begränsning måste man skapa en egen delegate, vilket känns omständigt. Med hjälp av lambda-uttryck så går det dock enkelt och man får en snygg och tydlig kod.

Såhär ser själva anropet och metoden som hanterar logiken ut. I exemplet så är HTML ett stycke HTML-kod, imageRegex ett utryck som hämtar ut bildtaggar i HTML och pageData en EPiServer-sida som innehåller värden som jag behöver för att ersätta bildtaggen med en korrekt ny bildtagg.

Tommy Söderström
2010-06-02