Sdílet prostřednictvím


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

CodeNamespace

Představuje obor konstrukce ve zdrojovém souboru.

CodeStruct2

Představuje strukturu ve zdrojovém kódu.

CodeInterface2

Představuje rozhraní ve zdrojovém kódu.

CodeClass2

Představuje tříd ve zdrojovém kódu.

CodeEnum

Představuje výčet ve zdrojovém kódu.

CodeVariable2

Definuje konstrukce proměnné ve zdrojovém souboru.

CodeDelegate2

Představuje delegáta ve zdrojovém kódu.

CodeElement2

Představuje prvek kódu nebo konstrukce ve zdrojovém souboru.

CodeEvent

Prvek kódu události modely.

CodeProperty2

Definuje vlastnosti konstrukce ve zdrojovém souboru.

CodeAttribute2

Definuje atribut pro element kódu.

CodeImport

Modely použití příkazů, které importovat obory názvů.

CodeFunction2

Představuje funkci konstrukce ve zdrojovém souboru.

CodeParameter2

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

Parameters

CodeNamespace

Members

CodeProperty

Getter a Setter

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

Koncepty

Zjištění kódu pomocí kódu modelu (Visual Basic)

Zjištění kódu pomocí kódu modelu (Visual C#)