Ein Problem mit der Nutzung des VS CodeModels

22/05/2009 - 11:06 von Ulf [Kado] Kadner | Report spam
Servus Leute!

Ich baue gerad an einem Plugin für VS2008. Nach dem ich mich durch
zahlreiche Dokus dazu gewühlt habe làuft das Plugin zwar aber es bleibt
noch eine Fragen offen.

1. Einbringung eines neuen CodeElements in eine EnvDTE.CodeType Instanz

Da ich bisher noch keine Möglichkeit gefunden habe einzufügenden Code
in eine vorliegende CodeType-Instanz (Definition einer Klasse)
einzubinden bediene ich mich der etwas unkonventionellen Methode:

TextSelection sel (TextSelection)_applicationObject.ActiveDocument.Selection;
// ...
sel.Insert(
"Zeichenkette die neue Eigenschaft definiert",
(int)vsInsertFlags.vsInsertFlagsContainNewText
);

Das ist natürlich eher suboptimal. Kommentare kann man so garnicht
einfügen da diese spàtestens ab der 2. Kommentarzeile veràndert
werden und nachfolgender Code ebenfalls auskommentiert wird.

Daher hoffe ich das ich nur noch nicht den richtigen Weg gefunden
habe um der vorliegenden EnvDTE.CodeType Instanz eine neue
Eigenschaft (EnvDTE.CodeProperty) hinzuzufügen.

Die Daten dafür liegen hier natürlich nicht als Zeichenkette vor,
sondern als die Instanz einer eigenen Classe die alle Infos zu
einer zu erstellenden Eigenschaft definiert. Das was wie oben
angedeutet als Zeichenkette eingefügt wird wird natürlich
zusàtzlich dafür erzeugt.

Meine Frage ist also:
Wie erstelle ich ein neues EnvDTE.CodeProperty in einer bestehenden
EnvDTE.CodeType Instanz?

Ich hoffe meine Infos reichen aus um mein Problem zu erfassen.

MfG, Ulf
 

Lesen sie die antworten

#1 Ulf [Kado] Kadner
22/05/2009 - 11:15 | Warnen spam
Ulf [Kado] Kadner schrieb:

Meine Frage ist also:
Wie erstelle ich ein neues EnvDTE.CodeProperty in einer bestehenden
EnvDTE.CodeType Instanz?



Das ist ja peinlich! Keine 10 Minuten nach diesem Posting fiel mir die
Lösung praktisch in den Schoß. Ich nutze statt EnvDTE.Codetype hier
besser EnvDTE.CodeClass. Dieses Interface stellt faktisch alle
notwendigen Methoden bereit die ich brauche.

Danke & MfG, Ulf

Ähnliche fragen