Permalänk
Medlem

VB.Net XML makro hjälp

Hej!

Jag har ett makro som ska dokumentera kod. Bl.a. ska man genom att placera markören i en funktion(metoder/konstruktorer) eller olika delar av properties (Get/Let/Set) kunna köra makrot och få automatisk dokumentation om t.ex. vem som bad om dokumentationen, när man bad om det, men också från vilken del av property man kallade på makrot. Och det är i properties det börjar bli krångligt.

Att fastställa om det är en konstruktor eller en metod i funktioner man kallar ifrån är enkelt att kolla genom instance.FunctionKind = vsCMFunction.vsCMFunctionConstructor. FunctionKind är en medlem i CodeFunction, men något liknande finns inte i CodeProperty. Ändå finns det enumerationsvärden som representerar de olika Propertydelarna (Get/Let/Set) i form av:

vsCMFunction.vsCMFunctionPropertyGet = 2
vsCMFunction.vsCMFunctionPropertyLet = 4
vsCMFunction.vsCMFunctionPropertySet = 8

Fast om man inte kan plocka ut de värdena ur koden för jämföring så är de tämligen värdelösa.

Värt att ha i åtanke om du vill hjälpa till är att jag är ny för VB sen 4 dagar tillbaka och programmering över huvud taget sen september förra året, så ha lite tålamod med mig om jag inte förklarat all nödvändigt eller förstår allt

Såhär långt har jag kommit hittills

'instance är tidigare satt till en CodeElement-typ, antingen CodeFunction eller CodeProperty 'Nu ska det alltså klargöras varifrån funktionen eller propertyn som makrot kallades. If instance.FunctionKind = vsCMFunction.vsCMFunctionConstructor Then '(SkapaDokumentation fixar XML dokumentationen som lägger sig ovanför 'den del som makrot kallades ifrån) SkapaDokumentation(instance) ElseIf instance.FunctionKind = vsCMFunction.vsCMFunctionFunction Then SkapaDokumentation(instance) 'Det är här FunctionKind måste ersättas med någon som passar för CodeProperty ElseIf instance.FunctionKind = vsCMFunction.vsCMFunctionPropertyGet _ Or instance.FunctionKind = vsCMFunction.vsCMFunctionPropertySet _ Or instance.FunctionKind = vsCMFunction.vsCMFunctionPropertyLet Then SkapaDokumentation(instance)

Tacksam för hjälp!

EDIT: Jag får givetvis ändra på strukturen så att koden kollar CodeElement typen (antingen CodeFunction eller CodeProperty) innan IF satsen, annars blir det felmeddelande när en koden inte hittar FunctionKind på en CodeProperty.

Visa signatur

AMD Athlon 64 3k+, ASUS A8N-SLI deluxe, NVIDIA GeForce 6200 TurboCache, Q-TEC PSU 650W, NVIDIA nForce nätverkskort, SB Audigy 2, 2 x 1GB Corsair PC3000 DDR-SDRAM, WD Raptor 36.7GB SATA 8MB 10k RPM och Maxtor 200GB SATA