Aspect-orientált programozás postsharp, Vlad Sukhachev blogjában

Kivételkezelés

A módszer OnEntry előfordul létre tranzakció OnException eljárás kezeli a kivételt, és OnSuccess metódus, hogy egy művelet kivételével nem dobták. Osztály TransactionAttribute egy aspektusa (szempont) az AOP terminológiai módszerek OnEntry, OnException, OnExit - ötletek (tanácsok). Csak arra kell rájönnünk, hogyan alkalmazzuk a szempontot. Ehhez jelölje ki a módszert DeleteOrder tulajdonság [Transaction].

Funkcióhívás eredményeinek elrejtése

A gyorsítótárban tárolt értékek a _cache osztályváltozóban kerülnek tárolásra, amely szótárként szerepel. Minden argumentumkészlet esetében a karakterlánckulcs a MakeKey módszerrel kerül kiszámításra. Ha a kulcs a szótárban található, akkor a funkcióhívás nem következik be. Ellenkező esetben a függvény implicit módon az args.Proceed () segítségével hívható meg, és az eredmény a szótárban található. A MakeKey módszer az argumentumokat és egy olyan objektumot kapja, amelynek metódusát hívják, és visszaad egy string hash-ot ehhez a híváshoz.
A _methodName változó tárolja a módszer nevét, a fordítási szakaszban ismertté válik.
A függvényhívás gyorsítótár használatának egyik példája a következő.

Tulajdonságértékek érvényesítése

Az érvényesítés egy új érték hozzárendeléséhez egy bonyolulttá teszi a hozzárendelési kódot. Kényelmes lenne ezt deklarálni az ingatlan tulajdonságok segítségével. Az alábbi példában a Customer.Name tulajdonság ellenőrzése rendszeres kifejezéssel történik. Az ellenőrzés egy új érték hozzárendelésének pillanatában történik, pl. valójában a megvalósításban.

Annak érdekében, hogy ez a kód működjön, létre kell hoznunk egy RegExpValidatorAttribute osztályt, amely a LocationInterceptionAspect-ből származik. Ez a szempont lehetővé teszi, hogy beillesztse a kódot egy készletbe, vagy végrehajtson egy adott tulajdonsághoz.