Tento článek byl přeložený strojově. Pokud chcete zobrazit článek v angličtině, zaškrtněte políčko Angličtina. Anglickou verzi článku můžete také zobrazit v místním okně přesunutím ukazatele myši nad text.
Překlad
Angličtina

Určení úplných názvů typů

.NET Framework (current version)
 

Je nutné zadat názvy typů tak, aby měl platný vstup pro různé operace reflexe. Název plně kvalifikovaný typ se skládá z specifikace název sestavení, oboru názvů a název typu. Zadejte název specifikace jsou používány metody, jako Type.GetType, Module.GetType, ModuleBuilder.GetType, a Assembly.GetType.

Backus-Naur formuláře (BNF) definuje syntaxe formální jazyky. Následující tabulka uvádí BNF lexikální pravidla, které popisují, jak rozpoznat platné zadání. Terminály (elementy, které nejsou další reducible) se zobrazí velkými písmeny. Terminálově nezávislých (elementy, které jsou dále reducible) jsou uvedeny v řetězcích rozlišením malých a samostatně uvozovkách, ale jednoduché uvozovky (') není součástí syntaxe sám sebe. Znakem (|) označuje pravidla, která mají dílčích pravidel.

BNF – gramatika z úplné názvy typů

Typ TypeSpec: = ReferenceTypeSpec

                                        |     SimpleTypeSpec

ReferenceTypeSpec: = SimpleTypeSpec 'a'

SimpleTypeSpec: = PointerTypeSpec

                                        |     ArrayTypeSpec

                                        |     TypeName

PointerTypeSpec: = SimpleTypeSpec ' *'

ArrayTypeSpec: = SimpleTypeSpec [ReflectionDimension]

                                        |     SimpleTypeSpec [ReflectionEmitDimension]

ReflectionDimension: = ' *'

                                        |     ReflectionDimension ReflectionDimension ','

                                        |     NOTOKEN

ReflectionEmitDimension: = ' *'

                                        |     Číslo '..' Číslo

                                        |     Číslo '...

                                        |     ReflectionDimension ReflectionDimension ','

                                        |     NOTOKEN

Number                            :=   [0-9]+

TypeName: = NamespaceTypeName

                                        |     NamespaceTypeName AssemblyNameSpec ','

NamespaceTypeName: = NestedTypeName

                                        |     NamespaceSpec '. " NestedTypeName

NestedTypeName: = IDENTIFIKÁTOR

                                        |     NestedTypeName IDENTIFIKÁTOR '+'

NamespaceSpec: = IDENTIFIKÁTOR

                                        |     NamespaceSpec '. " IDENTIFIKÁTOR

AssemblyNameSpec: = IDENTIFIKÁTOR

                                        |     IDENTIFIKÁTOR AssemblyProperties ','

AssemblyProperties: = AssemblyProperty

                                        |     AssemblyProperties AssemblyProperty ','

AssemblyProperty: = AssemblyPropertyName '=' AssemblyPropertyValue

Název typu je IDENTIFIKÁTOR libovolný platný název určit pravidly jazyka.

Použijte zpětné lomítko (\) jako řídicí znak pro oddělení následující klíčová slova, pokud se používá jako součást IDENTIFIKÁTORU.

Token

Význam

\,

Oddělovač sestavení.

\+

Vnořené typy oddělovače.

\&

Typ odkazu.

\*

Typ ukazatele.

\[

Pole dimenze oddělovač.

\]

Pole dimenze oddělovač.

\.

Použijte zpětné lomítko před dobou pouze v případě, že období se používá v specifikace pole. Tečky v NamespaceSpec nepřebírají zpětné lomítko.

\\

Zpětné lomítko, v případě potřeby jako řetězcový literál.

Upozorňujeme, že v všechny součásti typ TypeSpec s výjimkou AssemblyNameSpec, jsou relevantní prostory. V AssemblyNameSpec jsou relevantní prostory před oddělovač ',', ale mezery po ',' oddělovač jsou ignorovány.

Reflexe třídy, jako například Type.FullName, vrátí pozměnění název tak, aby vrácený název lze použít v volání GetType, jako v MyType.GetType(myType.FullName).

Například může být plně kvalifikovaný název typu Ozzy.OutBack.Kangaroo+Wallaby,MyAssembly.

Pokud byly oboru názvů Ozzy.Out+Back, pak na symbol plus musí předcházet zpětné lomítko. Jinak by analyzátor toto jako oddělovač vnoření. Reflexe vysílá tento řetězec jako Ozzy.Out\+Back.Kangaroo+Wallaby,MyAssembly.

Minimální informace požadované specifikací název sestavení je textový název sestavení (IDENTIFIER). IDENTIFIKÁTOR můžete provést pomocí seznam oddělený čárkami dvojic vlastnost/hodnota, jak je popsáno v následující tabulce. IDENTIFIKÁTOR pojmenování by mělo vycházet pravidla pro pojmenovávání souborů. IDENTIFIKÁTOR nerozlišuje velká a malá písmena.

Název vlastnosti

Popis

Povolené hodnoty

Version

Číslo verze sestavení

Major.Minor.Build.Revision, kde hlavní, menší, sestavení, a Revize jsou celá čísla od 0 do 65535.

PublicKey

Úplné veřejný klíč

Řetězec hodnotu úplné veřejný klíč v šestnáctkovém formátu. Zadejte odkaz s hodnotou null (nic v jazyce Visual Basic) explicitně udávajících privátní sestavení.

PublicKeyToken

Token veřejného klíče (8 bajtů hash veřejného klíče)

Hodnota tokenu veřejného klíče v šestnáctkovém formátu řetězec. Zadejte odkaz s hodnotou null (nic v jazyce Visual Basic) explicitně udávajících privátní sestavení.

Jazyková verze

Jazyková verze sestavení

Jazyková verze sestavení ve formátu RFC 1766, nebo "neutrální" pro sestavení nezávislé na jazyku (nonsatellite).

Vlastní

Vlastní binární rozsáhlý objekt (binární rozsáhlý OBJEKT). To se aktuálně používá jenom v sestavení, které jsou generované Generátor (Ngen).

Vlastní řetězec nástroje Generátor pro mezipaměť sestavení upozornit, že je nativních bitových kopií sestavení instaluje a proto má být nainstalován v mezipaměť nativních bitových kopií. Také nazývá zap řetězec.

Následující příklad ukazuje AssemblyName pro jednoduše pojmenované sestavení s výchozí jazykovou verzi.

com.microsoft.crypto, Culture="" 

Následující příklad ukazuje plně zadaný odkaz pro sestavení silným názvem pomocí jazykové verze "en".

com.microsoft.crypto, Culture=en, PublicKeyToken=a5d015c7d5a0b012,
    Version=1.0.0.0 

Následující příklady ukazují, částečně zadané AssemblyName, který může obsloužit silné nebo jednoduše pojmenované sestavení.

com.microsoft.crypto
com.microsoft.crypto, Culture=""
com.microsoft.crypto, Culture=en 

Následující příklady ukazují, částečně zadané AssemblyName, které musí splnit jednoduše pojmenované sestavení.

com.microsoft.crypto, Culture="", PublicKeyToken=null 
com.microsoft.crypto, Culture=en, PublicKeyToken=null

Následující příklady ukazují, částečně zadané AssemblyName, které musí splnit silně pojmenované sestavení.

com.microsoft.crypto, Culture="", PublicKeyToken=a5d015c7d5a0b012
com.microsoft.crypto, Culture=en, PublicKeyToken=a5d015c7d5a0b012,
    Version=1.0.0.0

SimpleTypeSpec * představuje nespravovaný ukazatel. Například ukazatel na typ MyType získáte pomocí Type.GetType("MyType*"). Ukazatel na ukazatel na typ MyType získáte pomocí Type.GetType("MyType**").

SimpleTypeSpec & reprezentuje spravované ukazatel nebo odkaz. Například pokud chcete získat odkaz na typ MyType, použijte Type.GetType("MyType &"). Všimněte si, že na rozdíl od ukazatelů, odkazů jsou omezeny na jedné úrovni.

V BNF – gramatika, ReflectionEmitDimension platí pouze pro neúplné typ definice načten pomocí ModuleBuilder.GetType. Jsou neúplné typ definice TypeBuilder objekty, které jsou vytvářeny pomocí Reflection.Emit ale na kterém TypeBuilder.CreateType nebyla volána. ReflectionDimension umožňuje načíst všechny definice typu, která byla dokončena, který je typ, který byl načten.

Pole jsou přístupné v reflexe určení pořadí pole:

  • Type.GetType("MyArray[]") Získá pole jedním dimenze s 0 dolní mez.

  • Type.GetType("MyArray[*]") Získá pole jedním dimenze s neznámou dolní mez.

  • Type.GetType("MyArray[][]") Získá pole dvourozměrná pole.

  • Type.GetType("MyArray[*,*]") a Type.GetType("MyArray[,]") získá obdélníková dvourozměrná pole s neznámou dolní meze.

Všimněte si, že se z modulu runtime hlediska, MyArray[] != MyArray[*], ale pro vícerozměrná pole jsou ekvivalentní zápisy dva. To znamená Type.GetType("MyArray [,]") == Type.GetType("MyArray[*,*]") se vyhodnocuje true.

Pro ModuleBuilder.GetType, MyArray[0..5] označuje jeden dimenze pole s velikostí 6, nižší vázán 0. MyArray[4…] označuje jeden dimenze pole neznámé velikosti a dolní hranice 4.

Zobrazit: