Přehled objektu CodeModel jazyka Visual Basic a C# aplikací
Potřebujete programově prozkoumat strukturu kódu v Visual Basic nebo Visual C# aplikace.Možná chcete znát obory definované v aplikaci a jejich vztah vnoření.Alternativně můžete vytvořit dokument, který obsahuje seznam tříd a jejich veřejných jako základ pro dokumentaci.
CodeModel2 Je objekt obecné rozšiřitelnosti objekt, který poskytuje přístup ke kódu v aplikaci.CodeModel2 Objektu neposkytuje textový seznam kódu.Místo toho obsahuje vnořené sada objektů představující prvky kódu.Například každý obor názvů v kódu je zastoupena CodeNamespace objektu.CodeModel2 Objektu přidružené k projektu přístup CodeModel vlastnost.
FileCodeModel2 Je objekt obecné rozšiřitelnosti objekt, který poskytuje přístup ke kódu v souboru jediný zdroj.Je zastoupen každý zdrojový soubor v aplikaci ProjectItem objektu a FileCodeModel2 objekt spojený s položkou projektu naleznete FileCodeModel vlastnost.
I CodeModel2 a FileCodeModel2 poskytují objekty CodeModel2.CodeElements a FileCodeModel.CodeElements vlastnost, která je kolekce CodeElement2 objektů.Visual Basica Visual C# podporu CodeModel2 a FileCodeModel objekty několika různými způsoby.Příklad Visual Basic provedení, viz Zjištění kódu pomocí kódu modelu (Visual Basic) a Jak: CodeModel objekt použít k analýze kódu Visual Basic.Příklad Visual C# provedení, viz Zjištění kódu pomocí kódu modelu (Visual C#) a Jak: vytvoření třídy C# pomocí objektu CodeModel.
Některé jazyky neimplementuje celý Visual Studio modelu kódu.Témata nápovědy ukázat výjimky, pokud existují.Většina rozdílů mezi implementací modelu kódu jsou kvůli funkční rozdíly mezi jazyky.Například nelze přidat funkce CodeNamespace objekty v Visual Basic nebo Visual C# protože pouze Visual C++ funkce definice funkce nejvyšší úrovně.
V následující tabulce jsou uvedeny hlavní kód objektů modelu.Klepněte na odkaz zobrazíte seznam metod a vlastností pro každý objekt.
Type |
Description |
---|---|
Představuje obor konstrukce ve zdrojovém souboru. |
|
Představuje strukturu ve zdrojovém kódu. |
|
Představuje rozhraní ve zdrojovém kódu. |
|
Představuje tříd ve zdrojovém kódu. |
|
Představuje výčet ve zdrojovém kódu. |
|
Definuje konstrukce proměnné ve zdrojovém souboru. |
|
Představuje delegáta ve zdrojovém kódu. |
|
Představuje prvek kódu nebo konstrukce ve zdrojovém souboru. |
|
Prvek kódu události modely. |
|
Definuje vlastnosti konstrukce ve zdrojovém souboru. |
|
Definuje atribut pro element kódu. |
|
Modely použití příkazů, které importovat obory názvů. |
|
Představuje funkci konstrukce ve zdrojovém souboru. |
|
Definuje parametr funkce, vlastnosti a tak dále. |
Vnořené prvky kódu
Prvky kódu v aplikaci jsou uspořádány ve vnořených architektury.Například FileCodeModel2 projektu položka může obsahovat, v jeho CodeElements kolekce, prvek kódu pro obor názvů.CodeNamespace Objekt představující daného oboru názvů může obsahovat několik dalších prvků kód této třídy představující v jeho Members vlastnost.Každý CodeClass2 prvek zase mohou obsahovat prvky kódu představuje vlastnosti (CodeProperty2 objekt) a metody (CodeFunction2 objektu).Metody pro načítání vnořené kód prvků závisí na typu prvek kódu a jsou popsány v další části.
Kód kategorie prvku
CodeElement2 Třída je základní třída, která představuje všechny prvky kódu položky projektu (zdrojový soubor).Mnoho tříd odvodit z CodeElement2 představující konstrukce jazyka aplikace včetně obory názvů tříd, vlastnosti, metody a události.Existují dvě kategorie vypovídající kód prvků – ty, které představují typy a těch, které nemají.
Některé prvky kódu v aplikaci představují typy.Tyto prvky kódu odvodit z CodeType objektu stejně jako CodeElement2 objekt:
Zjistíte-li odkaz na CodeElement2 je jeden z těchto typů objektů pomocí IsCodeType vlastnost.Prvky vnořené kódu tyto typy časem Members vlastnost, která vrátí CodeElements kolekce.Jak: CodeModel objekt použít k analýze kódu Visual Basicobsahuje příklad, který vyhledá všechny třídy v projektu.
Jak najít kód elementy vnořeny pod jiné typy prvky kódu závisí na typu prvku vnořené kód.Například protože vlastnost má pouze Get a Set metodou, CodeProperty2 přidružené vlastnosti objektu Getter a Setter vlastnosti, které vracejí CodeFunction2 prvky.Následující seznam obsahuje vlastnosti, které chcete použít k vyhledání prvků vnořených kód kód typy prvků.
Type |
Property |
---|---|
CodeFunction |
|
CodeNamespace |
|
CodeProperty |
Prvky kódu z externí odkazy
Kód může obsahovat deklarace typu z typů definovaných v projektu odkazy.(Jsou přidány odkazy projektu Přidat odkazy dialogové okno nebo References.Add metoda rozšiřitelnosti.) Visual Basic Projektu systému nevyřeší CodeTypeRef2 objekty představující tyto odkazy mimo jejich názvy.Proto pokud se pokusíte použít jakékoli jiné vlastnosti nebo metody CodeElement2 objekt přidružený odkaz, než Name vlastnost, bude vyvolána výjimka se "Není implementováno".Tyto odkazy jsou označovány jako "pouze typ název" prvky kódu.CodeTypeobjekty, které představují externí odkazy InfoLocation vlastnost nastavena na hodnotu vsCMInfoLocationNone.
Chyby kompilátoru a objekt CodeModel
Při psaní kódu, který spravuje odkazy na CodeElement2 objektů si měli být vědomi, že zatímco držíte odkaz změnit základní zdrojový kód.Prvek kódu může odstraněn, přejmenován nebo účastní chyba kompilátoru.V tom případě volání do CodeElement2 objektu vrátit chybovou zprávu "výjimku z HRESULT: 0x80047E2C."
Viz také
Úkoly
Jak: CodeModel objekt použít k analýze kódu Visual Basic
Poradce při potížích s Visual Basic a Visual C#-rozšiřitelnost