Kai naudojate AOP tiesioginį programavimą, turite nustatyti virtualų metodą, kad metodas būtų perimtas įprastai. Kadangi yra per daug būdų, kaip praleisti virtualius raktažodžius, naudokite atspindį, kad gautumėte visus metodus, kad nustatytumėte, ar praleidžiate raktinius žodžius. Naudojant atspindžio įsigijimo metodą, bus gauta daug anoniminių funkcijų, <>f__AnonymousType0, ir šiame darbe naudojamas atspindžio išskyrimo anoniminis metodas, kad gautų visus visų objektų, kurie paveldi bendrąją bazinę klasę, metodus, o tekste yra .NET ir .NET Core versijos.
Pirmiausia gaukite dabartinį rinkinį
.NET versija:
.NET Core versija:
Aptarnavimo objekto paveldėta pagrindinė klasė
Refleksijos įgijimo nevirtualus metodas
Kai gausite visus rinkinius ir visus metodus per atspindį, galite gauti anoniminį metodą AnonymousType, kaip parodyta paveikslėlyje žemiau:
.NET versija
.NET Core versija
Nustatykite, ar tai anoniminė funkcija
Anoniminių funkcijų vardų sritis ir deklaravimo tipas yra neapibrėžti, o neanoniminių funkcijų vardų sritis neturi būti nulinė! |