See artikkel on masintõlke peegelartikkel, palun klõpsake siia, et hüpata algse artikli juurde.

Vaade: 21364|Vastuse: 1

[Allikas] .net/C# kasutab atribuute lihtsa AOP rakendamiseks

[Kopeeri link]
Postitatud 18.04.2017 14:54:11 | | |

Alustame lihtsast kooditükist:



Oletame, et tegemist on veebiprogrammiga, kontrollime kõigepealt sessiooni, siis kontrollime õigusi, alustame tehingut, kirjutame logi, seejärel käivitame operatsiooni ja lõpuks kirjutame logi. Ilmselgelt ei saa me kõiki metoodikutsunguid ülaltoodud operatsioonidele DoSomething() kirjutada, nii et kood muutub suureks jamaks, nii et mida peaksime tegema?

Selle rakendamiseks on palju viise, näiteks raamistike nagu spring kasutamine, kuid tegelikes projektides ei ole võimalik raamistikku juhuslikult tutvustada ning tihti peame ise mõned mehhanismid kirjutama.

Siin mõtlen MVC filtrile, kui paned atribuudi sildi kontrollerile või tegevusele, saad enne ja pärast meetodi käivitamist teha muid asju. Simuleerime lihtsalt filtri rakendamist.

Esiteks muudetakse algne meetod elegantseks tunnusmärgiste viisiks:




Funktsioonisiltide puhul peavad olema klassid, mis vastavad funktsioonisiltidele, samuti AOP rakendused, mida saab iseseisvalt sisaldada failis või assamblees.

Esiteks meetodile lisatud silt, mis on rakendatud kui tühi:

//贴在方法上的标签
[AttributeUsage(AttributeTargets.Method, AllowMultiple = vale)]
public suletud klass MyInterceptorMethodAttribute : Atribuut { }
Seejärel määra klassile lisatav silt:




Siin on MyAopHandler klass, mis on defineeritud, implementeeritud järgmiselt:




Pane tähele, et ülaltoodud koodi konkreetne operatsiooniosa on ekvivalentne "proxy klassiga", mis sisuliselt muudab meetodi täitmise konteksti. Objektorienteeritud programmistruktuure, nagu delegaadid, saab kasutada konkreetse rakenduse tutvustamiseks välismaailmale sekundaarseks arenduseks.




Eelmine:ES5, ES6, ES2016, ES. Järgmine: Mis toimub Javascrip{filter}t versiooniga?
Järgmine:PowerShelli alustamise õpetus - v0.3 versioon
Disclaimer:
Kõik Code Farmer Networki poolt avaldatud tarkvara, programmeerimismaterjalid või artiklid on mõeldud ainult õppimiseks ja uurimistööks; Ülaltoodud sisu ei tohi kasutada ärilistel ega ebaseaduslikel eesmärkidel, vastasel juhul kannavad kasutajad kõik tagajärjed. Selle saidi info pärineb internetist ning autoriõiguste vaidlused ei ole selle saidiga seotud. Ülaltoodud sisu tuleb oma arvutist täielikult kustutada 24 tunni jooksul pärast allalaadimist. Kui sulle programm meeldib, palun toeta originaaltarkvara, osta registreerimist ja saa paremaid ehtsaid teenuseid. Kui esineb rikkumist, palun võtke meiega ühendust e-posti teel.

Mail To:help@itsvse.com