Type.GetType Method

Definice

Získá Type objekt, který reprezentuje zadaného typu. Gets a Type object that represents the specified type.

Přetížení

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)

Získá typ se zadaným názvem, určení, zda chcete vyhledávat v velká a malá písmena a, jestli se má vyvolat výjimku, pokud není typ nalezen a volitelně zadat vlastní metody pro vyřešení sestavení a typu. Gets the type with the specified name, specifying whether to perform a case-sensitive search and whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)

Získá typ se zadaným názvem, určující, jestli se má vyvolat výjimku, pokud není typ nalezen a volitelně zadat vlastní metody pro vyřešení sestavení a typu. Gets the type with the specified name, specifying whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>)

Získá typ se zadaným názvem, volitelně poskytuje vlastní metody přeložit sestavení a typu. Gets the type with the specified name, optionally providing custom methods to resolve the assembly and the type.

GetType()

Získá aktuální Type. Gets the current Type.

GetType(String, Boolean)

Získá Type se zadaným názvem prohledávání velká a malá písmena a určení, jestli se má vyvolat výjimku, pokud není typ nalezen. Gets the Type with the specified name, performing a case-sensitive search and specifying whether to throw an exception if the type is not found.

GetType(String)

Získá Type se zadaným názvem prohledávání malá a velká písmena. Gets the Type with the specified name, performing a case-sensitive search.

GetType(String, Boolean, Boolean)

Získá Type se zadaným názvem určující, jestli se má vyvolat výjimku, pokud není typ nalezen a jestli se mají vyhledávat v malá a velká písmena. Gets the Type with the specified name, specifying whether to throw an exception if the type is not found and whether to perform a case-sensitive search.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean)

Získá typ se zadaným názvem, určení, zda chcete vyhledávat v velká a malá písmena a, jestli se má vyvolat výjimku, pokud není typ nalezen a volitelně zadat vlastní metody pro vyřešení sestavení a typu. Gets the type with the specified name, specifying whether to perform a case-sensitive search and whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver, bool throwOnError, bool ignoreCase);
Parametry
typeName
String

Název typu a získat. The name of the type to get. Pokud typeResolver parametr zadán, název typu může být libovolné řetězce, který typeResolver dokáže řešení. If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. Pokud assemblyResolver parametr není zadaný, nebo pokud se používá standardní typ řešení, typeName musí být název kvalifikovaný pro sestavení (viz AssemblyQualifiedName), pokud je typ v právě spouští sestavení nebo v knihovně Mscorlib.dll, ve kterém případě stačí zadat název typu kvalifikovaný podle jejich oboru názvů. If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

Metodu, která vyhledává a vrátí sestavení, který je zadán v typeName. A method that locates and returns the assembly that is specified in typeName. Název sestavení je předán assemblyResolver jako AssemblyName objektu. The assembly name is passed to assemblyResolver as an AssemblyName object. Pokud typeName neobsahuje název sestavení, assemblyResolver není volána. If typeName does not contain the name of an assembly, assemblyResolver is not called. Pokud assemblyResolver není zadaný, standardní sestavení se provádí rozlišení. If assemblyResolver is not supplied, standard assembly resolution is performed. Upozornění: nepředávejte metody od neznámých a nedůvěryhodných volajících. Caution Do not pass methods from unknown or untrusted callers. To by mohlo způsobit zvýšení oprávnění pro škodlivý kód. Doing so could result in elevation of privilege for malicious code. Používejte pouze metody, které sami poskytnete nebo které znáte. Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

Metodu, která vyhledává a vrátí typ, který je určen typeName ze sestavení, který je vrácen assemblyResolver nebo standardní sestavení řešení. A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. Pokud je k dispozici žádné sestavení, může metoda poskytnout jednu. If no assembly is provided, the method can provide one. Tato metoda také přebírá parametr, který určuje, jestli se má vyhledávat nerozlišuje velikost písmen; Hodnota ignoreCase je předán tomuto parametru. The method also takes a parameter that specifies whether to perform a case-insensitive search; the value of ignoreCase is passed to that parameter. Upozornění: nepředávejte metody od neznámých a nedůvěryhodných volajících. Caution Do not pass methods from unknown or untrusted callers.

throwOnError
Boolean

true vyvolá výjimku, pokud nelze najít typ; false vrátit null. true to throw an exception if the type cannot be found; false to return null. Určení false potlačí i některé další podmínky výjimek, ale ne pro všechny z nich. Specifying false also suppresses some other exception conditions, but not all of them. Viz část Výjimky. See the Exceptions section.

ignoreCase
Boolean

true můžete vyhledávat velkých a malých písmen pro typeName, false můžete vyhledávat velká a malá písmena pro typeName. true to perform a case-insensitive search for typeName, false to perform a case-sensitive search for typeName.

Návraty

Typ se zadaným názvem. The type with the specified name. Pokud není typ nalezen, throwOnError parametr určuje, zda null je vrácena nebo dojde k výjimce. If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. V některých případech je vyvolána výjimka bez ohledu na hodnotu throwOnError. In some cases, an exception is thrown regardless of the value of throwOnError. Viz část Výjimky. See the Exceptions section.

Výjimky

typeName je null. typeName is null.

Je vyvolán inicializátor třídy, který vyvolá výjimku. A class initializer is invoked and throws an exception.

throwOnError je true a typ nebyl nalezen. throwOnError is true and the type is not found. -nebo- -or- throwOnError je true a typeName obsahuje neplatné znaky, jako je například vložené kartu. throwOnError is true and typeName contains invalid characters, such as an embedded tab. -nebo- -or- throwOnError je true a typeName je prázdný řetězec. throwOnError is true and typeName is an empty string. -nebo- -or- throwOnError je true a typeName reprezentuje typ pole s neplatnou velikostí. throwOnError is true and typeName represents an array type with an invalid size. -nebo- -or- typeName reprezentuje pole prvků TypedReference. typeName represents an array of TypedReference.

Dojde k chybě při typeName je analyzován do názvu typu a název sestavení (například pokud název jednoduchý typ obsahuje speciální znak znakem). An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character). -nebo- -or- throwOnError je true a typeName obsahuje neplatnou syntaxi (například "MyType[,*,]"). throwOnError is true and typeName contains invalid syntax (for example, "MyType[,*,]"). -nebo- -or- typeName reprezentuje obecný typ, který má typ ukazatele, ByRef typ, nebo Void jako jeden z argumentů typu. typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments. -nebo- -or- typeName reprezentuje obecný typ, který má nesprávný počet argumentů typu. typeName represents a generic type that has an incorrect number of type arguments. -nebo- -or- typeName reprezentuje obecný typ, a jeden z argumentů typu nevyhovuje omezením pro odpovídající typ parametru. typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnError je true a sestavení nebo některý z jeho závislostí nebyla nalezena. throwOnError is true and the assembly or one of its dependencies was not found.

Sestavení nebo některý prvek, na kterém závisí, byly nalezeny, ale nepodařilo se je načíst. The assembly or one of its dependencies was found, but could not be loaded. -nebo- -or- typeName obsahuje název neplatné sestavení. typeName contains an invalid assembly name. -nebo- -or- typeName je platný název sestavení bez názvu typu. typeName is a valid assembly name without a type name.

Sestavení nebo některý objekt, na kterém závisí, nejsou platné. The assembly or one of its dependencies is not valid. -nebo- -or- Sestavení bylo zkompilováno pomocí novější verze modulu CLR (Common Language Runtime), než je aktuálně načtená verze. The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

Poznámky

Použít toto přetížení metody a jejich přidružené přetížení (GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) a GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)) nahradit výchozí implementaci GetType metoda s implementacemi flexibilnější.Use this method overload and its associated overloads (GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) and GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)) to replace the default implementation of the GetType method with more flexible implementations. Poskytnutím vlastní metody, které řešení názvů typů a názvy sestavení, které je obsahují, máte následující:By providing your own methods that resolve type names and the names of the assemblies that contain them, you can do the following:

  • Jaké verze sestavení je typ načten z ovládacího prvku.Control which version of an assembly a type is loaded from.

  • Zadejte jiné místo, kde můžete vyhledat název typu, která neobsahuje název sestavení.Provide another place to look for a type name that does not include an assembly name.

  • Načtení sestavení pomocí názvů částečného sestavení.Load assemblies using partial assembly names.

  • Podtřídy třídy vrátit System.Type modulem common language runtime (CLR), které nejsou vytvořeny.Return subclasses of System.Type that are not created by the common language runtime (CLR).

Například v serializace tolerantní tato metoda umožňuje hledat pomocí částečný název sestavení "nejlépe vyhovující".For example, in version-tolerant serialization this method enables you to search for a "best fit" assembly by using a partial name. Další přetížení GetType metoda vyžadují název typu kvalifikovaného pro sestavení, který obsahuje číslo verze.Other overloads of the GetType method require an assembly-qualified type name, which includes the version number.

Alternativní implementace platformních systému typů, může být zapotřebí vracet podtřídy třídy System.Type , která nejsou vytvořena platformou CLR, všechny typy, které jsou vráceny pomocí dalších přetížení GetType metody jsou typy modulu runtime.Alternate implementations of the type system may need to return subclasses of System.Type that are not created by the CLR; all types that are returned by other overloads of the GetType method are runtime types.

Poznámky k použitíUsage Notes

Toto přetížení metody a jejich přidružené přetížení analyzovat typeName do názvu typu a název sestavení a potom překladu názvů.This method overload and its associated overloads parse typeName into the name of a type and the name of an assembly, and then resolve the names. Překlad názvu sestavení předchází překlad názvu typu, protože název typu musí být vyřešen v kontextu sestavení.Resolution of the assembly name occurs before resolution of the type name, because a type name must be resolved in the context of an assembly.

Poznámka

Pokud nejste obeznámeni s konceptem názvy typu kvalifikovaného pro sestavení, najdete v článku AssemblyQualifiedName vlastnost.If you are unfamiliar with the concept of assembly-qualified type names, see the AssemblyQualifiedName property.

Pokud typeName nemá název kvalifikovaný pro sestavení, sestavení se přeskočí.If typeName is not an assembly-qualified name, assembly resolution is skipped. Názvy neúplných typů lze vyřešit v rámci Mscorlib.dll nebo právě spuštěné sestavení, nebo můžete volitelně zadat sestavení v typeResolver parametru.Unqualified type names can be resolved in the context of Mscorlib.dll or the currently executing assembly, or you can optionally provide an assembly in the typeResolver parameter. Účinky včetně nebo vynechání názvu sestavení pro různé druhy překlad se zobrazují jako tabulky v překlad smíšené oddílu.The effects of including or omitting the assembly name for different kinds of name resolution are displayed as a table in the Mixed Name Resolution section.

Poznámky k obecné použití:General usage notes:

  • Nepředávejte metody assemblyResolver nebo typeResolver které pocházejí z neznámých a nedůvěryhodných volajících.Do not pass methods to assemblyResolver or typeResolver if they come from unknown or untrusted callers. Používejte pouze metody, které sami poskytnete nebo které znáte.Use only methods that you provide or that you are familiar with.

    Upozornění

    Pomocí metody od neznámých a nedůvěryhodných volajících může vést ke zvýšení úrovně oprávnění pro škodlivý kód.Using methods from unknown or untrusted callers could result in elevation of privilege for malicious code.

  • Vynecháte-li assemblyResolver a/nebo typeResolver parametry, hodnota throwOnError předán parametr metody, které provádějí výchozí rozhodnutí.If you omit the assemblyResolver and/or typeResolver parameters, the value of the throwOnError parameter is passed to the methods that perform the default resolution.

  • Pokud throwOnError je true, tato metoda vyvolá TypeLoadException při typeResolver vrátí nulla FileNotFoundException při assemblyResolver vrátí null.If throwOnError is true, this method throws a TypeLoadException when typeResolver returns null, and a FileNotFoundException when assemblyResolver returns null.

  • Tato metoda nezachytí výjimky vyvolané assemblyResolver a typeResolver.This method does not catch exceptions thrown by assemblyResolver and typeResolver. Zodpovídáte za všechny výjimky, které jsou vyvolány pomocí metody překladač.You are responsible for any exceptions that are thrown by the resolver methods.

Řešení sestaveníResolving Assemblies

assemblyResolver Metoda obdrží AssemblyName objektu, který je vytvořen pomocí názvu řetězce sestavení, který je součástí analýzy typeName.The assemblyResolver method receives an AssemblyName object, which is produced by parsing the string assembly name that is included in typeName. Pokud typeName neobsahuje název sestavení, assemblyResolver nevolá a null je předán typeResolver.If typeName does not contain an assembly name, assemblyResolver is not called and null is passed to typeResolver.

Pokud assemblyResolver není zadaný, standardní sestavení zjišťování se používá k nalezení sestavení.If assemblyResolver is not supplied, standard assembly probing is used to locate the assembly. Pokud assemblyResolver je k dispozici, GetType metodě není nutné standardní zjišťování; v takovém případě musíte zajistit, aby vaše assemblyResolver dokáže zpracovat všechna sestavení mu předáte.If assemblyResolver is provided, the GetType method does not do standard probing; in that case you must ensure that your assemblyResolver can handle all the assemblies you pass to it.

assemblyResolver Metoda by měla vrátit null sestavení nelze najít.The assemblyResolver method should return null if the assembly cannot be resolved. Pokud assemblyResolver vrátí null, typeResolver nevolá a žádné další zpracování dojde k; kromě toho pokud throwOnError je true, FileNotFoundException je vyvolána výjimka.If assemblyResolver returns null, typeResolver is not called and no further processing occurs; additionally, if throwOnError is true, a FileNotFoundException is thrown.

Pokud AssemblyName , který je předán assemblyResolver částečné název, jeden nebo více jejích částí null.If the AssemblyName that is passed to assemblyResolver is a partial name, one or more of its parts are null. Například, pokud neobsahuje žádnou verzi Version vlastnost null.For example, if it has no version, the Version property is null. Pokud Version vlastnost, CultureInfo vlastnost a GetPublicKeyToken metoda všechny návratové null, pak byl zadán pouze jednoduchý název sestavení.If the Version property, the CultureInfo property, and the GetPublicKeyToken method all return null, then only the simple name of the assembly was supplied. assemblyResolver Metodu můžete použít nebo ignorovat všechny části názvu sestavení.The assemblyResolver method can use or ignore all parts of the assembly name.

Účinky možnosti překladu odlišné sestavení se zobrazí jako tabulka v překlad smíšené oddílu pro názvy typů jednoduché a kvalifikovaný pro sestavení.The effects of different assembly resolution options are displayed as a table in the Mixed Name Resolution section, for simple and assembly-qualified type names.

Řešení typůResolving Types

Pokud typeName neurčuje název sestavení, typeResolver je volána vždy.If typeName does not specify an assembly name, typeResolver is always called. Pokud typeName Určuje název sestavení, typeResolver je volána, pouze když název sestavení úspěšně vyřešen.If typeName specifies an assembly name, typeResolver is called only when the assembly name is successfully resolved. Pokud assemblyResolver nebo zjišťování vrátí standardní sestavení null, typeResolver není volána.If assemblyResolver or standard assembly probing returns null, typeResolver is not called.

typeResolver Metoda přijímá tři argumenty:The typeResolver method receives three arguments:

  • Sestavení pro hledání nebo null Pokud typeName neobsahuje název sestavení.The assembly to search or null if typeName does not contain an assembly name.

  • Jednoduchý název typu.The simple name of the type. V případě vnořený typ jde nejkrajnější nadřazeného typu.In the case of a nested type, this is the outermost containing type. V případě obecného typu je to jednoduchý název obecného typu.In the case of a generic type, this is the simple name of the generic type.

  • Logická hodnota, která je true při ignorovat velikost písmen názvů typů.A Boolean value that is true if the case of type names is to be ignored.

Implementace určuje způsob, jakým se používají tyto argumenty.The implementation determines the way these arguments are used. typeResolver Metoda by měla vrátit null pokud ho nedokáže rozlišit.The typeResolver method should return null if it cannot resolve the type. Pokud typeResolver vrátí null a throwOnError je true, toto přetížení GetType vyvolá TypeLoadException.If typeResolver returns null and throwOnError is true, this overload of GetType throws a TypeLoadException.

Účinky možnosti překladu jiného typu se zobrazují jako tabulky v překlad smíšené oddílu pro názvy typů jednoduché a kvalifikovaný pro sestavení.The effects of different type resolution options are displayed as a table in the Mixed Name Resolution section, for simple and assembly-qualified type names.

Řešení vnořených typůResolving Nested Types

Pokud typeName je vnořený typ, pouze název nejkrajnější obsahující typ je předán typeResolver.If typeName is a nested type, only the name of the outermost containing type is passed to typeResolver. Když typeResolver tento typ, vrátí GetNestedType metoda je volána rekurzivně, dokud nebude vyřešen nejvnitřnější vnořeného typu.When typeResolver returns this type, the GetNestedType method is called recursively until the innermost nested type has been resolved.

Řešení obecných typůResolving Generic Types

GetType Je volat rekurzivně řešení obecných typů: abyste mohli přeložit obecný typ a potom vyřešit jeho argumentů typu.The GetType is called recursively to resolve generic types: First to resolve the generic type itself, and then to resolve its type arguments. Pokud argument typu není obecný, GetType je volat rekurzivně vyřešit jeho argumentů typu, a tak dále.If a type argument is generic, GetType is called recursively to resolve its type arguments, and so on.

Kombinace assemblyResolver a typeResolver poskytnout musí být schopna všechny úrovně tohoto rekurze.The combination of assemblyResolver and typeResolver that you provide must be capable of resolving all levels of this recursion. Předpokládejme například, že zadáte assemblyResolver , která řídí načítání MyAssembly.For example, suppose you supply an assemblyResolver that controls the loading of MyAssembly. Předpokládejme, že chcete přeložit obecný typ Dictionary<string, MyType> (Dictionary(Of String, MyType) v jazyce Visual Basic).Suppose you want to resolve the generic type Dictionary<string, MyType> (Dictionary(Of String, MyType) in Visual Basic). Můžete například předat následující název obecného typu:You might pass the following generic type name:

"System.Collections.Generic.Dictionary`2[System.String,[MyNamespace.MyType, MyAssembly]]"  

Všimněte si, že MyType je argument typu pouze kvalifikovaný pro sestavení.Notice that MyType is the only assembly-qualified type argument. Názvy Dictionary<TKey,TValue> a String třídy nejsou kvalifikovaný pro sestavení.The names of the Dictionary<TKey,TValue> and String classes are not assembly-qualified. Vaše typeResolver musí být možné popisovač buď sestavení nebo null, protože se zobrazí null pro Dictionary<TKey,TValue> a String.Your typeResolver must be able handle either an assembly or null, because it will receive null for Dictionary<TKey,TValue> and String. Tento případ dokáže zpracovat voláním přetížení GetType metodu, která přebírá řetězec, protože oba názvy neúplných typů v knihovně Mscorlib.dll:It can handle that case by calling an overload of the GetType method that takes a string, because both of the unqualified type names are in Mscorlib.dll:

Type t = Type.GetType(test,
                      (aName) => aName.Name == "MyAssembly" ? 
                          Assembly.LoadFrom(@".\MyPath\v5.0\MyAssembly.dll") : null,
                      (assem, name, ignore) => assem == null ? 
                          Type.GetType(name, false, ignore) : 
                              assem.GetType(name, false, ignore)
                     ); 

assemblyResolver Metoda není volána pro typ slovníku a typ řetězce, protože tyto názvy typů nejsou kvalifikovaný pro sestavení.The assemblyResolver method is not called for the dictionary type and the string type, because those type names are not assembly-qualified.

Nyní předpokládejme, že místo System.String, je první argument obecného typu YourType, z YourAssembly:Now suppose that instead of System.String, the first generic argument type is YourType, from YourAssembly:

"System.Collections.Generic.Dictionary`2[[YourNamespace.YourType, YourAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null], [MyNamespace.MyType, MyAssembly]]"  

Protože toto sestavení není soubor Mscorlib.dll ani právě spuštěné sestavení, nejde přeložit YourType bez kvalifikovaného názvu.Because this assembly is neither Mscorlib.dll nor the currently executing assembly, you cannot resolve YourType without an assembly-qualified name. Protože vaše assemblyResolve bude volat rekurzivně, musí být schopna zpracovávat tento případ.Because your assemblyResolve will be called recursively, it must be able to handle this case. Místo vrácení null pro sestavení jiný než MyAssembly, teď provádí načtení sestavení s použitím zadané AssemblyName objektu.Instead of returning null for assemblies other than MyAssembly, it now performs an assembly load using the supplied AssemblyName object.

Type t2 = Type.GetType(test,
                       (aName) => aName.Name == "MyAssembly" ? 
                           Assembly.LoadFrom(@".\MyPath\v5.0\MyAssembly.dll") : 
                           Assembly.Load(aName),
                       (assem, name, ignore) => assem == null ? 
                           Type.GetType(name, false, ignore) : 
                               assem.GetType(name, false, ignore), true
                      ); 

Zpět na poznámky k použití.Back to Usage Notes.

Řešení názvů typů se speciálními znakyResolving Type Names with Special Characters

Některé znaky mají zvláštní význam v úplné názvy sestavení.Certain characters have special meanings in assembly-qualified names. Pokud název jednoduchý typ obsahuje tyto znaky, znaky způsobit chyby analýzy při jednoduchý název je součástí názvu kvalifikovaný pro sestavení.If a simple type name contains these characters, the characters cause parsing errors when the simple name is part of an assembly-qualified name. Aby nedocházelo k chybám analýzy, musíte před speciální znaky s zpětné lomítko, předtím, než můžete předat název kvalifikovaný pro sestavení GetType metody.To avoid the parsing errors, you must escape the special characters with a backslash before you can pass the assembly-qualified name to the GetType method. Například, pokud má název typu Strange]Type, řídicí znak musí být přidán náskok před hranatá závorka následujícím způsobem: Strange\]Type.For example, if a type is named Strange]Type, the escape character must be added ahead of the square bracket as follows: Strange\]Type.

Poznámka

Názvy těchto speciálních znaků nelze vytvořit v jazyce Visual Basic nebo C#, ale je možné vytvořit pomocí jazyk Microsoft intermediate language (MSIL) nebo pomocí Emitování dynamických sestavení.Names with such special characters cannot be created in Visual Basic or C#, but can be created by using Microsoft intermediate language (MSIL) or by emitting dynamic assemblies.

V následující tabulce jsou uvedeny speciálních znaků pro názvy typů.The following table shows the special characters for type names.

ZnakCharacter VýznamMeaning
, (čárka), (comma) Oddělovač pro úplné názvy sestavení.Delimiter for assembly-qualified names.
[] (hranaté závorky)[] (square brackets) Jako dvojice příponou označuje typ pole; jako oddělovač pár obklopuje seznamy obecných argumentů a úplné názvy sestavení.As a suffix pair, indicates an array type; as a delimiter pair, encloses generic argument lists and assembly-qualified names.
& (znak)& (ampersand) Jako příponu označuje, že typ je typ odkazu.As a suffix, indicates that a type is a reference type.
* (hvězdička)* (asterisk) Jako příponu označuje, že typ je typ ukazatele.As a suffix, indicates that a type is a pointer type.
+ (plus)+ (plus) Oddělovač pro vnořené typy.Delimiter for nested types.
\ (zpětné lomítko)\ (backslash) Řídicí znak.Escape character.

Vlastnosti, jako AssemblyQualifiedName vrátit správně řídícími znaky řetězce.Properties such as AssemblyQualifiedName return correctly escaped strings. Je nutné předat správně uvozovacími znaky řetězce GetType metody.You must pass correctly escaped strings to the GetType method. Pak GetType metoda předává správně únikové názvy pro typeResolver a metody rozlišování typu výchozí.In turn, the GetType method passes correctly escaped names to typeResolver and to the default type resolution methods. Pokud potřebujete porovnat název neuvozené název v typeResolver, je nutné odebrat řídicí znaky.If you need to compare a name to an unescaped name in typeResolver, you must remove the escape characters.

Zpět na poznámky k použití.Back to Usage Notes.

Řešení smíšených názvůMixed Name Resolution

Následující tabulka shrnuje komunikaci mezi assemblyResolver, typeResolvera výchozí název řešení, pro všechny kombinace název typu a název sestavení v typeName:The following table summarizes the interactions between assemblyResolver, typeResolver, and default name resolution, for all combinations of type name and assembly name in typeName:

Obsah názvu typuContents of type name Metoda překladač sestaveníAssembly resolver method Typ překladače – metodaType resolver method VýsledekResult
typ, sestavenítype, assembly nullnull nullnull Ekvivalentní volání Type.GetType(String, Boolean, Boolean) přetížení metody.Equivalent to calling the Type.GetType(String, Boolean, Boolean) method overload.
typ, sestavenítype, assembly k dispoziciprovided nullnull assemblyResolver Vrátí sestavení nebo vrátí null Pokud nelze přeložit sestavení.assemblyResolver returns the assembly or returns null if it cannot resolve the assembly. Pokud sestavení je vyřešen, Assembly.GetType(String, Boolean, Boolean) přetížení metody slouží k načtení typu ze sestavení; jinak neexistuje žádný pokus o vyřešení typu.If the assembly is resolved, the Assembly.GetType(String, Boolean, Boolean) method overload is used to load the type from the assembly; otherwise, there is no attempt to resolve the type.
typ, sestavenítype, assembly nullnull k dispoziciprovided Ekvivalentní převod názvu sestavení AssemblyName objektu a volání Assembly.Load(AssemblyName) přetížení metody, chcete-li získat sestavení.Equivalent to converting the assembly name to an AssemblyName object and calling the Assembly.Load(AssemblyName) method overload to get the assembly. Pokud sestavení je vyřešen, je předána typeResolver; v opačném případě typeResolver nevolá a neexistuje žádné další pokus o vyřešení typu.If the assembly is resolved, it is passed to typeResolver; otherwise, typeResolver is not called and there is no further attempt to resolve the type.
typ, sestavenítype, assembly k dispoziciprovided k dispoziciprovided assemblyResolver Vrátí sestavení nebo vrátí null Pokud nelze přeložit sestavení.assemblyResolver returns the assembly or returns null if it cannot resolve the assembly. Pokud sestavení je vyřešen, je předána typeResolver; v opačném případě typeResolver nevolá a neexistuje žádné další pokus o vyřešení typu.If the assembly is resolved, it is passed to typeResolver; otherwise, typeResolver is not called and there is no further attempt to resolve the type.
– typtype null, k dispozicinull, provided nullnull Ekvivalentní volání Type.GetType(String, Boolean, Boolean) přetížení metody.Equivalent to calling the Type.GetType(String, Boolean, Boolean) method overload. Protože není zadaný název sestavení, vyhledávají se pouze Mscorlib.dll a právě spuštěné sestavení.Because the assembly name is not provided, only Mscorlib.dll and the currently executing assembly are searched. Pokud assemblyResolver je k dispozici je ignorována.If assemblyResolver is provided, it is ignored.
– typtype null, k dispozicinull, provided k dispoziciprovided typeResolver je volána, a null je předán pro sestavení.typeResolver is called, and null is passed for the assembly. typeResolver můžete zadat typ z libovolného sestavení včetně sestavení, které načte k tomuto účelu.typeResolver can provide a type from any assembly, including assemblies it loads for the purpose. Pokud assemblyResolver je k dispozici je ignorována.If assemblyResolver is provided, it is ignored.
sestaveníassembly null, k dispozicinull, provided null, k dispozicinull, provided A FileLoadException je vyvolána, protože název sestavení je analyzován jako by šlo o název typu kvalifikovaného pro sestavení.A FileLoadException is thrown, because the assembly name is parsed as if it were an assembly-qualified type name. Výsledkem je název neplatný sestavení.This results in an invalid assembly name.

Zpět na: poznámky k použití, řešení sestavení, řešení typů.Back to: Usage Notes, Resolving Assemblies, Resolving Types.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean)

Získá typ se zadaným názvem, určující, jestli se má vyvolat výjimku, pokud není typ nalezen a volitelně zadat vlastní metody pro vyřešení sestavení a typu. Gets the type with the specified name, specifying whether to throw an exception if the type is not found, and optionally providing custom methods to resolve the assembly and the type.

public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver, bool throwOnError);
Parametry
typeName
String

Název typu a získat. The name of the type to get. Pokud typeResolver parametr zadán, název typu může být libovolné řetězce, který typeResolver dokáže řešení. If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. Pokud assemblyResolver parametr není zadaný, nebo pokud se používá standardní typ řešení, typeName musí být název kvalifikovaný pro sestavení (viz AssemblyQualifiedName), pokud je typ v právě spouští sestavení nebo v knihovně Mscorlib.dll, ve kterém případě stačí zadat název typu kvalifikovaný podle jejich oboru názvů. If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

Metodu, která vyhledává a vrátí sestavení, který je zadán v typeName. A method that locates and returns the assembly that is specified in typeName. Název sestavení je předán assemblyResolver jako AssemblyName objektu. The assembly name is passed to assemblyResolver as an AssemblyName object. Pokud typeName neobsahuje název sestavení, assemblyResolver není volána. If typeName does not contain the name of an assembly, assemblyResolver is not called. Pokud assemblyResolver není zadaný, standardní sestavení se provádí rozlišení. If assemblyResolver is not supplied, standard assembly resolution is performed. Upozornění: nepředávejte metody od neznámých a nedůvěryhodných volajících. Caution Do not pass methods from unknown or untrusted callers. To by mohlo způsobit zvýšení oprávnění pro škodlivý kód. Doing so could result in elevation of privilege for malicious code. Používejte pouze metody, které sami poskytnete nebo které znáte. Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

Metodu, která vyhledává a vrátí typ, který je určen typeName ze sestavení, který je vrácen assemblyResolver nebo standardní sestavení řešení. A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. Pokud je k dispozici žádné sestavení, může metoda poskytnout jednu. If no assembly is provided, the method can provide one. Tato metoda také přebírá parametr, který určuje, jestli se má vyhledávat nerozlišuje velikost písmen; false je předán tomuto parametru. The method also takes a parameter that specifies whether to perform a case-insensitive search; false is passed to that parameter. Upozornění: nepředávejte metody od neznámých a nedůvěryhodných volajících. Caution Do not pass methods from unknown or untrusted callers.

throwOnError
Boolean

true vyvolá výjimku, pokud nelze najít typ; false vrátit null. true to throw an exception if the type cannot be found; false to return null. Určení false potlačí i některé další podmínky výjimek, ale ne pro všechny z nich. Specifying false also suppresses some other exception conditions, but not all of them. Viz část Výjimky. See the Exceptions section.

Návraty

Typ se zadaným názvem. The type with the specified name. Pokud není typ nalezen, throwOnError parametr určuje, zda null je vrácena nebo dojde k výjimce. If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. V některých případech je vyvolána výjimka bez ohledu na hodnotu throwOnError. In some cases, an exception is thrown regardless of the value of throwOnError. Viz část Výjimky. See the Exceptions section.

Výjimky

typeName je null. typeName is null.

Je vyvolán inicializátor třídy, který vyvolá výjimku. A class initializer is invoked and throws an exception.

throwOnError je true a typ nebyl nalezen. throwOnError is true and the type is not found. -nebo- -or- throwOnError je true a typeName obsahuje neplatné znaky, jako je například vložené kartu. throwOnError is true and typeName contains invalid characters, such as an embedded tab. -nebo- -or- throwOnError je true a typeName je prázdný řetězec. throwOnError is true and typeName is an empty string. -nebo- -or- throwOnError je true a typeName reprezentuje typ pole s neplatnou velikostí. throwOnError is true and typeName represents an array type with an invalid size. -nebo- -or- typeName reprezentuje pole prvků TypedReference. typeName represents an array of TypedReference.

Dojde k chybě při typeName je analyzován do názvu typu a název sestavení (například pokud název jednoduchý typ obsahuje speciální znak znakem). An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character). -nebo- -or- throwOnError je true a typeName obsahuje neplatnou syntaxi (například "MyType[,*,]"). throwOnError is true and typeName contains invalid syntax (for example, "MyType[,*,]"). -nebo- -or- typeName reprezentuje obecný typ, který má typ ukazatele, ByRef typ, nebo Void jako jeden z argumentů typu. typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments. -nebo- -or- typeName reprezentuje obecný typ, který má nesprávný počet argumentů typu. typeName represents a generic type that has an incorrect number of type arguments. -nebo- -or- typeName reprezentuje obecný typ, a jeden z argumentů typu nevyhovuje omezením pro odpovídající typ parametru. typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnError je true a sestavení nebo některý z jeho závislostí nebyla nalezena. throwOnError is true and the assembly or one of its dependencies was not found. -nebo- -or- typeName obsahuje název neplatné sestavení. typeName contains an invalid assembly name. -nebo- -or- typeName je platný název sestavení bez názvu typu. typeName is a valid assembly name without a type name.

Sestavení nebo některý prvek, na kterém závisí, byly nalezeny, ale nepodařilo se je načíst. The assembly or one of its dependencies was found, but could not be loaded.

Sestavení nebo některý objekt, na kterém závisí, nejsou platné. The assembly or one of its dependencies is not valid. -nebo- -or- Sestavení bylo zkompilováno pomocí novější verze modulu CLR (Common Language Runtime), než je aktuálně načtená verze. The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

Poznámky

Mezi scénáře použití pro tuto metodu a podrobnosti o assemblyResolver a typeResolver parametrů najdete v GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) přetížení metody.Usage scenarios for this method and details about the assemblyResolver and typeResolver parameters can be found in the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload.

Volání přetížení této metody je stejné jako volání funkce GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) přetížení metody a určení false pro ignoreCase parametru.Calling this method overload is the same as calling the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload and specifying false for the ignoreCase parameter.

GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>)

Získá typ se zadaným názvem, volitelně poskytuje vlastní metody přeložit sestavení a typu. Gets the type with the specified name, optionally providing custom methods to resolve the assembly and the type.

public static Type GetType (string typeName, Func<System.Reflection.AssemblyName,System.Reflection.Assembly> assemblyResolver, Func<System.Reflection.Assembly,string,bool,Type> typeResolver);
Parametry
typeName
String

Název typu a získat. The name of the type to get. Pokud typeResolver parametr zadán, název typu může být libovolné řetězce, který typeResolver dokáže řešení. If the typeResolver parameter is provided, the type name can be any string that typeResolver is capable of resolving. Pokud assemblyResolver parametr není zadaný, nebo pokud se používá standardní typ řešení, typeName musí být název kvalifikovaný pro sestavení (viz AssemblyQualifiedName), pokud je typ v právě spouští sestavení nebo v knihovně Mscorlib.dll, ve kterém případě stačí zadat název typu kvalifikovaný podle jejich oboru názvů. If the assemblyResolver parameter is provided or if standard type resolution is used, typeName must be an assembly-qualified name (see AssemblyQualifiedName), unless the type is in the currently executing assembly or in Mscorlib.dll, in which case it is sufficient to supply the type name qualified by its namespace.

assemblyResolver
Func<AssemblyName,Assembly>

Metodu, která vyhledává a vrátí sestavení, který je zadán v typeName. A method that locates and returns the assembly that is specified in typeName. Název sestavení je předán assemblyResolver jako AssemblyName objektu. The assembly name is passed to assemblyResolver as an AssemblyName object. Pokud typeName neobsahuje název sestavení, assemblyResolver není volána. If typeName does not contain the name of an assembly, assemblyResolver is not called. Pokud assemblyResolver není zadaný, standardní sestavení se provádí rozlišení. If assemblyResolver is not supplied, standard assembly resolution is performed. Upozornění: nepředávejte metody od neznámých a nedůvěryhodných volajících. Caution Do not pass methods from unknown or untrusted callers. To by mohlo způsobit zvýšení oprávnění pro škodlivý kód. Doing so could result in elevation of privilege for malicious code. Používejte pouze metody, které sami poskytnete nebo které znáte. Use only methods that you provide or that you are familiar with.

typeResolver
Func<Assembly,String,Boolean,Type>

Metodu, která vyhledává a vrátí typ, který je určen typeName ze sestavení, který je vrácen assemblyResolver nebo standardní sestavení řešení. A method that locates and returns the type that is specified by typeName from the assembly that is returned by assemblyResolver or by standard assembly resolution. Pokud je k dispozici žádné sestavení, typeResolver může metoda poskytnout jednu. If no assembly is provided, the typeResolver method can provide one. Tato metoda také přebírá parametr, který určuje, jestli se má vyhledávat nerozlišuje velikost písmen; false je předán tomuto parametru. The method also takes a parameter that specifies whether to perform a case-insensitive search; false is passed to that parameter. Upozornění: nepředávejte metody od neznámých a nedůvěryhodných volajících. Caution Do not pass methods from unknown or untrusted callers.

Návraty

Typ se zadaným názvem nebo null Pokud není typ nalezen. The type with the specified name, or null if the type is not found.

Výjimky

typeName je null. typeName is null.

Je vyvolán inicializátor třídy, který vyvolá výjimku. A class initializer is invoked and throws an exception.

Dojde k chybě při typeName je analyzován do názvu typu a název sestavení (například pokud název jednoduchý typ obsahuje speciální znak znakem). An error occurs when typeName is parsed into a type name and an assembly name (for example, when the simple type name includes an unescaped special character). -nebo- -or- typeName reprezentuje obecný typ, který má typ ukazatele, ByRef typ, nebo Void jako jeden z argumentů typu. typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments. -nebo- -or- typeName reprezentuje obecný typ, který má nesprávný počet argumentů typu. typeName represents a generic type that has an incorrect number of type arguments. -nebo- -or- typeName reprezentuje obecný typ, a jeden z argumentů typu nevyhovuje omezením pro odpovídající typ parametru. typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

typeName reprezentuje pole prvků TypedReference. typeName represents an array of TypedReference.

Sestavení nebo některý prvek, na kterém závisí, byly nalezeny, ale nepodařilo se je načíst. The assembly or one of its dependencies was found, but could not be loaded. -nebo- -or- typeName obsahuje název neplatné sestavení. typeName contains an invalid assembly name. -nebo- -or- typeName je platný název sestavení bez názvu typu. typeName is a valid assembly name without a type name.

Sestavení nebo některý objekt, na kterém závisí, nejsou platné. The assembly or one of its dependencies is not valid. -nebo- -or- Sestavení bylo zkompilováno pomocí novější verze modulu CLR (Common Language Runtime), než je aktuálně načtená verze. The assembly was compiled with a later version of the common language runtime than the version that is currently loaded.

Poznámky

Mezi scénáře použití pro tuto metodu a podrobnosti o assemblyResolver a typeResolver parametrů najdete v GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) přetížení metody.Usage scenarios for this method and details about the assemblyResolver and typeResolver parameters can be found in the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload.

Poznámka

Pokud typeName nebyl nalezen, volání GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) vrátí metoda null.If typeName cannot be found, the call to the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>) method returns null. Nevyvolá výjimku.It does not throw an exception. K řízení, zda je vyvolána výjimka, volejte přetížení GetType metodu, která má throwOnError parametr.To control whether an exception is thrown, call an overload of the GetType method that has a throwOnError parameter.

Volání přetížení této metody je stejné jako volání funkce GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) přetížení metody a určení false pro throwOnError a ignoreCase parametry.Calling this method overload is the same as calling the GetType(String, Func<AssemblyName,Assembly>, Func<Assembly,String,Boolean,Type>, Boolean, Boolean) method overload and specifying false for the throwOnError and ignoreCase parameters.

GetType()

Získá aktuální Type. Gets the current Type.

public Type GetType ();
Návraty

Aktuální Type. The current Type.

Implementuje
Výjimky

Je vyvolán inicializátor třídy, který vyvolá výjimku. A class initializer is invoked and throws an exception.

Zobrazit také

GetType(String, Boolean)

Získá Type se zadaným názvem prohledávání velká a malá písmena a určení, jestli se má vyvolat výjimku, pokud není typ nalezen. Gets the Type with the specified name, performing a case-sensitive search and specifying whether to throw an exception if the type is not found.

public static Type GetType (string typeName, bool throwOnError);
Parametry
typeName
String

Název kvalifikovaný pro sestavení typu zobrazíte. The assembly-qualified name of the type to get. Zobrazit AssemblyQualifiedName. See AssemblyQualifiedName. Pokud je typ v právě spuštěné sestavení nebo Mscorlib.dll, stačí zadat název typu kvalifikovaný podle jejich oboru názvů. If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

throwOnError
Boolean

true vyvolá výjimku, pokud nelze najít typ; false vrátit null. true to throw an exception if the type cannot be found; false to return null. Určení false potlačí i některé další podmínky výjimek, ale ne pro všechny z nich. Specifying false also suppresses some other exception conditions, but not all of them. Viz část Výjimky. See the Exceptions section.

Návraty

Typ se zadaným názvem. The type with the specified name. Pokud není typ nalezen, throwOnError parametr určuje, zda null je vrácena nebo dojde k výjimce. If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. V některých případech je vyvolána výjimka bez ohledu na hodnotu throwOnError. In some cases, an exception is thrown regardless of the value of throwOnError. Viz část Výjimky. See the Exceptions section.

Výjimky

typeName je null. typeName is null.

Je vyvolán inicializátor třídy, který vyvolá výjimku. A class initializer is invoked and throws an exception.

throwOnError je true a typ nebyl nalezen. throwOnError is true and the type is not found. -nebo- -or- throwOnError je true a typeName obsahuje neplatné znaky, jako je například vložené kartu. throwOnError is true and typeName contains invalid characters, such as an embedded tab. -nebo- -or- throwOnError je true a typeName je prázdný řetězec. throwOnError is true and typeName is an empty string. -nebo- -or- throwOnError je true a typeName reprezentuje typ pole s neplatnou velikostí. throwOnError is true and typeName represents an array type with an invalid size. -nebo- -or- typeName reprezentuje pole prvků TypedReference. typeName represents an array of TypedReference.

throwOnError je true a typeName obsahuje neplatnou syntaxi. throwOnError is true and typeName contains invalid syntax. Například "MyType [, *,]". For example, "MyType[,*,]". -nebo- -or- typeName reprezentuje obecný typ, který má typ ukazatele, ByRef typ, nebo Void jako jeden z argumentů typu. typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments. -nebo- -or- typeName reprezentuje obecný typ, který má nesprávný počet argumentů typu. typeName represents a generic type that has an incorrect number of type arguments. -nebo- -or- typeName reprezentuje obecný typ, a jeden z argumentů typu nevyhovuje omezením pro odpovídající typ parametru. typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnError je true a sestavení nebo některý z jeho závislostí nebyla nalezena. throwOnError is true and the assembly or one of its dependencies was not found.

V .NET pro Windows Store apps nebo přenosné knihovny tříd, zachytit výjimku základní třídy IOException, místo toho.

In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

Sestavení nebo některý prvek, na kterém závisí, byly nalezeny, ale nepodařilo se je načíst. The assembly or one of its dependencies was found, but could not be loaded.

Sestavení nebo některý objekt, na kterém závisí, nejsou platné. The assembly or one of its dependencies is not valid. -nebo- -or- Je aktuálně načtená verze 2.0 nebo novější modul common language runtime a sestavení bylo zkompilováno pomocí novější verze. Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

Příklady

Následující příklad načte typ System.Int32 a používá k zobrazení tohoto typu objektu FullName vlastnost System.Int32.The following example retrieves the type of System.Int32 and uses that type object to display the FullName property of System.Int32. Pokud objekt typu odkazuje na sestavení, která neexistuje, tento příklad vyvolá výjimku.If a type object refers to an assembly that does not exist, this example throws an exception.

using namespace System;

int main()
{
   try {
      // Get the type of a specified class.
      Type^ myType1 = Type::GetType( "System.Int32" );
      Console::WriteLine( "The full name is {0}.\n", myType1->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type System.Int32",
                          e->GetType()->Name);
   }

   try {
      // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
      Type^ myType2 = Type::GetType( "NoneSuch", true );
      Console::WriteLine( "The full name is {0}.", myType2->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type NoneSuch",
                          e->GetType()->Name);
   }

}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
using System;

class Example
{
     public static void Main()
     {
         try {
             // Get the type of a specified class.
             Type myType1 = Type.GetType("System.Int32");
             Console.WriteLine("The full name is {0}.\n", myType1.FullName);
         }
         catch (TypeLoadException e)
         {
            Console.WriteLine("{0}: Unable to load type System.Int32", e.GetType().Name);
         }

         try {
             // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Type myType2 = Type.GetType("NoneSuch", true);
             Console.WriteLine("The full name is {0}.", myType2.FullName);
         }
         catch(TypeLoadException e) {
            Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name);
         }
     }
}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
Class Example
     Public Shared Sub Main()
         Try
             ' Get the type of the specified class.
             Dim myType1 As Type = Type.GetType("System.Int32")
             Console.WriteLine("The full name is {0}.", myType1.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type System.Int32",
                               e.GetType().Name)
         End Try

         Console.WriteLine()

         Try
             ' Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Dim myType2 As Type = Type.GetType("NoneSuch", True)
             Console.WriteLine("The full name is {0}.", myType2.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name)
         End Try
     End Sub
End Class
' The example displays the following output:
'       The full name is System.Int32.
'
'       TypeLoadException: Unable to load type NoneSuch

Poznámky

Můžete použít GetType metodu k získání Type objektu pro typ v jiném sestavení, pokud znáte jeho název kvalifikovaný pro sestavení, kterou lze získat z AssemblyQualifiedName.You can use the GetType method to obtain a Type object for a type in another assembly, if you know its assembly-qualified name which can be obtained from AssemblyQualifiedName. GetType způsobí, že načítání sestavení zadaná v typeName.GetType causes loading of the assembly specified in typeName. Můžete také načíst sestavení pomocí Load metoda a pak GetType nebo GetTypes metody Assembly třídy pro získání Type objekty.You can also load an assembly using the Load method, and then use the GetType or GetTypes methods of the Assembly class to get Type objects. Pokud je typ v sestavení v době kompilace znám vašemu programu, je výhodnější používat typeof v jazyce C#, GetType v jazyce Visual Basic nebo typeid v jazyce C++.If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C#, GetType in Visual Basic, or typeid in C++.

GetType funguje pouze na sestavení načtené z disku.GetType only works on assemblies loaded from disk. Při volání GetType k vyhledání typ definovaný v dynamickém sestavení definované pomocí System.Reflection.Emit služeb, může se zobrazit nekonzistentní chování.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. Chování závisí na tom, zda dynamická sestavení trvalá, to znamená, vytvořené pomocí RunAndSave nebo Save přístup režimy System.Reflection.Emit.AssemblyBuilderAccess výčtu.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. Pokud dynamické sestavení je trvalé a byl zapsán na disk před GetType je volána, zavaděč najde uložené sestavení na disku, načte sestavení a načte typ z tohoto sestavení.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. Pokud sestavení nebyla uložena na disk, pokud GetType je volána metoda vrátí null.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType nerozumí přechodné dynamické sestavení; Proto volání GetType načíst typ v přechodnou dynamické sestavení vrátí null.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

Chcete-li použít GetType v dynamickém modulu, přihlaste se k odběru AppDomain.AssemblyResolve událostí a volání GetType před uložením.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. Jinak se zobrazí dvě kopie sestavení v paměti.Otherwise, you will get two copies of the assembly in memory.

throwOnError Parametr určuje, co se stane, když typ nebyl nalezen a potlačí i některé další podmínky výjimek, jak je popsáno v části výjimky.The throwOnError parameter specifies what happens when the type is not found, and also suppresses certain other exception conditions, as described in the Exceptions section. Některé výjimky jsou vyvolány bez ohledu na hodnotu throwOnError.Some exceptions are thrown regardless of the value of throwOnError. Například, pokud typ nenajde, ale nelze načíst TypeLoadException dojde i v případě throwOnError je false.For example, if the type is found but cannot be loaded, a TypeLoadException is thrown even if throwOnError is false.

Následující tabulka uvádí, co jsou vrácené členy základní třídy Get při reflexi typu.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

Typ členuMember Type StaticStatic NestatickýNon-Static
KonstruktorConstructor NeNo NeNo
PoleField NeNo Ano.Yes. Pole je vždy skrýváno podle názvu a podpisu.A field is always hide-by-name-and-signature.
UdálostEvent Nelze použítNot applicable Pro systém typů platí obecné pravidlo, že dědičnost je stejná jako u metod, které implementují vlastnost.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflexe pracuje s třídami jako se skrývanými podle názvu a podpisu.Reflection treats properties as hide-by-name-and-signature. Viz poznámka 2 níže.See note 2 below.
MetodaMethod NeNo Ano.Yes. Metody (virtuální i nevirtuální) mohou být skrývány podle názvu nebo podle názvu a podpisu.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Vnořený typNested Type NeNo NeNo
VlastnostProperty Nelze použítNot applicable Pro systém typů platí obecné pravidlo, že dědičnost je stejná jako u metod, které implementují vlastnost.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflexe pracuje s třídami jako se skrývanými podle názvu a podpisu.Reflection treats properties as hide-by-name-and-signature. Viz poznámka 2 níže.See note 2 below.
  1. Skrývání podle názvu a podpisu bere v úvahu všechny části podpisu včetně vlastních modifikátorů, návratových typů, typů parametrů, sentinelů a nespravovaných konvencí volání.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Jedná se o binární porovnání.This is a binary comparison.

  2. Pro účely reflexe jsou vlastnosti a události skrývány podle názvu a podpisu.For reflection, properties and events are hide-by-name-and-signature. Má-li vlastnost v základní třídě přístupové metody get i set, ale odvozená třída má pouze přístupovou metodu get, vlastnost odvozené třídy skryje vlastnost základní třídy a nebudete mít k dispozici přístup k metodě set základní třídy.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Vlastní atributy nejsou součástí systému společných typů.Custom attributes are not part of the common type system.

Pole nebo typy modelu COM nebudou vyhledány Pokud ještě nebyla načtena do tabulky dostupných tříd.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName může být název typu kvalifikovány podle svého oboru názvů nebo název kvalifikovaný pro sestavení, která zahrnuje specifikaci název sestavení.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. Zobrazit AssemblyQualifiedName.See AssemblyQualifiedName.

Pokud typeName obsahuje obor názvů, ale ne název sestavení, prohledává tato metoda pouze volání objektů sestavení a soubor Mscorlib.dll, v uvedeném pořadí.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. Pokud vlastnost typeName je plně kvalifikovaný název částečné nebo úplné sestavení, prohledává tato metoda v zadaném sestavení.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. Pokud sestavení se silným názvem, je požadován název dokončení sestavení.If the assembly has a strong name, a complete assembly name is required.

AssemblyQualifiedName Vlastnost vrátí plně kvalifikovaného názvu typu včetně vnořených typů, název sestavení a obecných argumentů.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and generic arguments. Všechny kompilátory, které podporují modul Common Language Runtime, vygenerují jednoduchý název vnořené třídy a reflexe při dotazu sestaví pozměněný název podle následujících pravidel.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

Poznámka

Ve verzi 2.0 rozhraní.NET Framework je do identity sestavení přidána architektura procesoru a lze ji uvádět jako součást řetězců názvů sestavení.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. Příklad: "ProcessorArchitecture = msil".For example, "ProcessorArchitecture=msil". Ale není součástí řetězce vráceného AssemblyQualifiedName vlastnost z důvodu kompatibility.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. Můžete také načíst typy tak, že vytvoříte AssemblyName objektu a předají se jí odpovídající přetížení Load metoda.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. Pak můžete použít Assembly.GetType metoda načíst typy ze sestavení.You can then use the Assembly.GetType method to load types from the assembly. Viz také AssemblyName.ProcessorArchitecture.See also AssemblyName.ProcessorArchitecture.

OddělovačDelimiter VýznamMeaning
Zpětné lomítko (\)Backslash (\) Řídicí znak.Escape character.
Prvními (')Backtick (`) Předchází jedna nebo více číslic představující počet parametrů typu, nachází na konci názvu obecného typu.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
Hranaté závorky ([])Brackets ([]) Uzavřete seznam argumentů obecného typu, pro Konstruovaný obecný typ; v rámci seznamu argumentů typu uzavřete typu kvalifikovaného pro sestavení.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
Čárka (,)Comma (,) Předchází název sestavení.Precedes the Assembly name.
Tečka (.)Period (.) Určuje identifikátory oboru názvů.Denotes namespace identifiers.
Znaménko plus (+)Plus sign (+) Předchází vnořenou třídu.Precedes a nested class.

Plně kvalifikovaný název třídy může vypadat například takto:For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

Pokud byly TopNamespace.Sub+Namespace obor názvů, pak řetězec, musel předcházet na znaménko plus (+) s řídicím znakem (\) tak, aby se interpretuje jako oddělovač vnoření.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. Reflexe generuje tento řetězec následujícím způsobem:Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

Objekt "++" stane "\+\+" a "\"stane"\\".A "++" becomes "\+\+", and a "\" becomes "\\".

Tento kvalifikovaný název lze jako trvalý a později použít k načtení Type.This qualified name can be persisted and later used to load the Type. K vyhledání a načtení Type, použijte GetType buď s typem názvu pouze nebo s názvem typu kvalifikovaného sestavení.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType s typem název pouze bude hledat Type v sestavení volajícího a poté v systémovém sestavení.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType s sestavení bude hledat kvalifikovaným názvem typu Type v libovolném sestavení.GetType with the assembly qualified type name will look for the Type in any assembly.

Názvy typů mohou obsahovat koncové znaky poskytující další informace o typu, například zda se jedná o typ ukazatele, odkazu nebo pole.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. Chcete-li název typu načíst bez těchto koncových znaků, použijte t.GetElementType().ToString(), kde t je typem.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

Mezery jsou brány v úvahu ve všech součástech názvu typu s výjimkou názvu sestavení.Spaces are relevant in all type name components except the assembly name. V názvu sestavení jsou brány v úvahu mezery před oddělovačem ',', zatímco mezery za oddělovačem ',' jsou ignorovány.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

Název obecného typu končí řetězcem prvními (`) následované číslic představující počet argumentů obecného typu.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. Účelem této pozměnění názvu je povolit kompilátory pro podporu obecných typů se stejným názvem, ale s různý počet parametrů typu, ke kterým dochází ve stejném oboru.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. Například reflexe vrací pozměnění názvy Tuple1andřazené kolekce členů2 z obecných metod Tuple(Of T) a Tuple(Of T0, T1) v jazyce Visual Basic nebo Tuple<T> a řazené kolekce členů\<T0, T1> v jazyce Visual C#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

Pro obecné typy je seznam argumentů typu uzavřený v hranatých závorkách a argumenty typu jsou odděleny čárkami.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. Například obecný Dictionary<TKey,TValue> má dva parametry typu.For example, a generic Dictionary<TKey,TValue> has two type parameters. A Dictionary<TKey,TValue> z MyType s klíči typu String může být reprezentován následujícím způsobem:A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

K určení typu kvalifikovaného pro sestavení v rámci seznamu argumentů typu, uzavřete typu kvalifikovaného pro sestavení v závorkách.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. V opačném případě čárkami, které oddělují části název kvalifikovaný pro sestavení jsou interpretovány jako omezující typ další argumenty.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. Například Dictionary<TKey,TValue> z MyType z knihovny MyAssembly.dll, pomocí klíčů typu String, může být určen následovně:For example, a Dictionary<TKey,TValue> of MyType from MyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

Poznámka

Typu kvalifikovaného pro sestavení můžou být uzavřená v závorkách, pouze v případě, že se zobrazí v seznamu parametrů typu.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. Pravidla pro vyhledávání sestavení pro kvalifikovaný a neúplných typů v seznamech parametrů typu jsou stejná jako pravidla pro kvalifikovaný a nekvalifikované neobecné typy.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Typy s možnou hodnotou Null představují zvláštní případ obecných typů.Nullable types are a special case of generic types. Například nullable Int32 reprezentovaná tímto řetězcem "System.Nullable'1[System.Int32]".For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

Poznámka

V jazyce C#, C++ a Visual Basic můžete získat také pomocí operátorů typ typy připouštějící hodnotu Null.In C#, C++, and Visual Basic you can also get nullable types using type operators. Například, s možnou hodnotou Null Boolean je vrácený typ typeof(Nullable<bool>) v jazyce C# pomocí Nullable<Boolean>::typeid v jazyce C++ a tím GetType(Nullable(Of Boolean)) v jazyce Visual Basic.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

Následující tabulka ukazuje syntaxi pomocí GetType pro různé typy.The following table shows the syntax you use with GetType for various types.

Chcete-li získatTo Get PoužitíUse
S povolenou hodnotou Null Int32A nullable Int32 Type.GetType("System.Nullable1[System.Int32]")`Type.GetType("System.Nullable1[System.Int32]")`
Nespravovaný ukazatel na MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
Nespravovaný ukazatel na ukazatel na MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
Spravovaného ukazatele nebo odkazu na MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). Všimněte si, že na rozdíl od ukazatelů, odkazů jsou omezené na jedné úrovni.Note that unlike pointers, references are limited to one level.
Nadřazené třídy a vnořené třídyA parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
Jednorozměrné pole s dolní mez 0A one-dimensional array with a lower bound of 0 Type.GetType("MyArray[]")
Jednorozměrné pole s neznámým rozsahem nižšíA one-dimensional array with an unknown lower bound Type.GetType("MyArray[*]")
N rozměrné poleAn n-dimensional array Čárka (,) v závorkách a celkový počet n-1 časy.A comma (,) inside the brackets a total of n-1 times. Například System.Object[,,] představuje trojrozměrném Object pole.For example, System.Object[,,] represents a three-dimensional Object array.
Pole dvourozměrné poleA two-dimensional array's array Type.GetType("MyArray[][]")
Obdélníkové dvojrozměrné pole s dolní meze neznámýA rectangular two-dimensional array with unknown lower bounds Type.GetType("MyArray[,]")
Obecný typ s jeden argument typuA generic type with one type argument Type.GetType("MyGenericType1[MyType]").Type.GetType("MyGenericType1[MyType]")`
Obecný typ s dvěma argumenty typuA generic type with two type arguments Type.GetType("MyGenericType2[MyType,AnotherType]").Type.GetType("MyGenericType2[MyType,AnotherType]")`
Obecný typ se dvěma argumenty typu kvalifikovaného pro sestaveníA generic type with two assembly-qualified type arguments Type.GetType("MyGenericType2[[MyType,myAssembly],[AnotherType,AnotherAssembly]]").Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`
Kvalifikovaný pro sestavení obecný typ s argumentem typu kvalifikovaného pro sestaveníAn assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType1[[MyType,myAssembly]],MyGenericTypeAssembly").Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`
Obecný typ, jehož argument typu je obecného typu pomocí dva argumenty typuA generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")
Zobrazit také

GetType(String)

Získá Type se zadaným názvem prohledávání malá a velká písmena. Gets the Type with the specified name, performing a case-sensitive search.

public static Type GetType (string typeName);
Parametry
typeName
String

Název kvalifikovaný pro sestavení typu zobrazíte. The assembly-qualified name of the type to get. Zobrazit AssemblyQualifiedName. See AssemblyQualifiedName. Pokud je typ v právě spuštěné sestavení nebo Mscorlib.dll, stačí zadat název typu kvalifikovaný podle jejich oboru názvů. If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

Návraty

Typ se zadaným názvem, pokud byl nalezen v opačném případě null. The type with the specified name, if found; otherwise, null.

Výjimky

typeName je null. typeName is null.

Je vyvolán inicializátor třídy, který vyvolá výjimku. A class initializer is invoked and throws an exception.

typeName reprezentuje obecný typ, který má typ ukazatele, ByRef typ, nebo Void jako jeden z argumentů typu. typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments. -nebo- -or- typeName reprezentuje obecný typ, který má nesprávný počet argumentů typu. typeName represents a generic type that has an incorrect number of type arguments. -nebo- -or- typeName reprezentuje obecný typ, a jeden z argumentů typu nevyhovuje omezením pro odpovídající typ parametru. typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

typeName reprezentuje pole prvků TypedReference. typeName represents an array of TypedReference.

V .NET pro Windows Store apps nebo přenosné knihovny tříd, zachytit výjimku základní třídy IOException, místo toho.

In the .NET for Windows Store apps or the Portable Class Library, catch the base class exception, IOException, instead.

Sestavení nebo některý prvek, na kterém závisí, byly nalezeny, ale nepodařilo se je načíst. The assembly or one of its dependencies was found, but could not be loaded.

Sestavení nebo některý objekt, na kterém závisí, nejsou platné. The assembly or one of its dependencies is not valid. -nebo- -or- Je aktuálně načtená verze 2.0 nebo novější modul common language runtime a sestavení bylo zkompilováno pomocí novější verze. Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

Příklady

Následující příklad načte typ System.Int32 a používá k zobrazení tohoto typu objektu FullName vlastnost System.Int32.The following example retrieves the type of System.Int32 and uses that type object to display the FullName property of System.Int32.

using namespace System;

int main()
{
   try {
      // Get the type of a specified class.
      Type^ myType1 = Type::GetType( "System.Int32" );
      Console::WriteLine( "The full name is {0}.\n", myType1->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type System.Int32",
                          e->GetType()->Name);
   }

   try {
      // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
      Type^ myType2 = Type::GetType( "NoneSuch", true );
      Console::WriteLine( "The full name is {0}.", myType2->FullName );
   }
   catch ( TypeLoadException^ e ) {
       Console::WriteLine("{0}: Unable to load type NoneSuch",
                          e->GetType()->Name);
   }

}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
using System;

class Example
{
     public static void Main()
     {
         try {
             // Get the type of a specified class.
             Type myType1 = Type.GetType("System.Int32");
             Console.WriteLine("The full name is {0}.\n", myType1.FullName);
         }
         catch (TypeLoadException e)
         {
            Console.WriteLine("{0}: Unable to load type System.Int32", e.GetType().Name);
         }

         try {
             // Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Type myType2 = Type.GetType("NoneSuch", true);
             Console.WriteLine("The full name is {0}.", myType2.FullName);
         }
         catch(TypeLoadException e) {
            Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name);
         }
     }
}
// The example displays the following output:
//       The full name is System.Int32.
//
//       TypeLoadException: Unable to load type NoneSuch
Class Example
     Public Shared Sub Main()
         Try
             ' Get the type of the specified class.
             Dim myType1 As Type = Type.GetType("System.Int32")
             Console.WriteLine("The full name is {0}.", myType1.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type System.Int32",
                               e.GetType().Name)
         End Try

         Console.WriteLine()

         Try
             ' Since NoneSuch does not exist in this assembly, GetType throws a TypeLoadException.
             Dim myType2 As Type = Type.GetType("NoneSuch", True)
             Console.WriteLine("The full name is {0}.", myType2.FullName)
         Catch e As TypeLoadException
             Console.WriteLine("{0}: Unable to load type NoneSuch", e.GetType().Name)
         End Try
     End Sub
End Class
' The example displays the following output:
'       The full name is System.Int32.
'
'       TypeLoadException: Unable to load type NoneSuch

Poznámky

Můžete použít GetType metodu k získání Type objektu pro typ v jiném sestavení, pokud znáte jeho název kvalifikovaný pro sestavení, kterou lze získat z AssemblyQualifiedName.You can use the GetType method to obtain a Type object for a type in another assembly, if you know its assembly-qualified name which can be obtained from AssemblyQualifiedName. GetType způsobí, že načítání sestavení zadaná v typeName.GetType causes loading of the assembly specified in typeName. Můžete také načíst sestavení pomocí Load metoda a pak GetType nebo GetTypes metody Assembly třídy pro získání Type objekty.You can also load an assembly using the Load method, and then use the GetType or GetTypes methods of the Assembly class to get Type objects. Pokud je typ v sestavení v době kompilace znám vašemu programu, je výhodnější používat v jazyce C#, GetType v jazyce Visual Basic, nebo v jazyce C++.If a type is in an assembly known to your program at compile time, it is more efficient to use in C#, GetType in Visual Basic, or in C++.

Poznámka

Pokud typeName nebyl nalezen, volání GetType(String) vrátí metoda null.If typeName cannot be found, the call to the GetType(String) method returns null. Nevyvolá výjimku.It does not throw an exception. K řízení, zda je vyvolána výjimka, volejte přetížení GetType metodu, která má throwOnError parametr.To control whether an exception is thrown, call an overload of the GetType method that has a throwOnError parameter.

GetType funguje pouze na sestavení načtené z disku.GetType only works on assemblies loaded from disk. Při volání GetType k vyhledání typ definovaný v dynamickém sestavení definované pomocí System.Reflection.Emit služeb, může se zobrazit nekonzistentní chování.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. Chování závisí na tom, zda dynamická sestavení trvalá, to znamená, vytvořené pomocí RunAndSave nebo Save přístup režimy System.Reflection.Emit.AssemblyBuilderAccess výčtu.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. Pokud dynamické sestavení je trvalé a byl zapsán na disk před GetType je volána, zavaděč najde uložené sestavení na disku, načte sestavení a načte typ z tohoto sestavení.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. Pokud sestavení nebyla uložena na disk, pokud GetType je volána metoda vrátí null.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType nerozumí přechodné dynamické sestavení; Proto volání GetType načíst typ v přechodnou dynamické sestavení vrátí null.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

Chcete-li použít GetType v dynamickém modulu, přihlaste se k odběru AppDomain.AssemblyResolve událostí a volání GetType před uložením.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. Jinak se zobrazí dvě kopie sestavení v paměti.Otherwise, you will get two copies of the assembly in memory.

Následující tabulka uvádí, co jsou vrácené členy základní třídy Get při reflexi typu.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

Typ členuMember Type StaticStatic NestatickýNon-Static
KonstruktorConstructor NeNo NeNo
PoleField NeNo Ano.Yes. Pole je vždy skrýváno podle názvu a podpisu.A field is always hide-by-name-and-signature.
UdálostEvent Nelze použítNot applicable Pro systém typů platí obecné pravidlo, že dědičnost je stejná jako u metod, které implementují vlastnost.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflexe pracuje s třídami jako se skrývanými podle názvu a podpisu.Reflection treats properties as hide-by-name-and-signature. Viz poznámka 2 níže.See note 2 below.
MetodaMethod NeNo Ano.Yes. Metody (virtuální i nevirtuální) mohou být skrývány podle názvu nebo podle názvu a podpisu.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Vnořený typNested Type NeNo NeNo
VlastnostProperty Nelze použítNot applicable Pro systém typů platí obecné pravidlo, že dědičnost je stejná jako u metod, které implementují vlastnost.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflexe pracuje s třídami jako se skrývanými podle názvu a podpisu.Reflection treats properties as hide-by-name-and-signature. Viz poznámka 2 níže.See note 2 below.
  1. Skrývání podle názvu a podpisu bere v úvahu všechny části podpisu včetně vlastních modifikátorů, návratových typů, typů parametrů, sentinelů a nespravovaných konvencí volání.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Jedná se o binární porovnání.This is a binary comparison.

  2. Pro účely reflexe jsou vlastnosti a události skrývány podle názvu a podpisu.For reflection, properties and events are hide-by-name-and-signature. Má-li vlastnost v základní třídě přístupové metody get i set, ale odvozená třída má pouze přístupovou metodu get, vlastnost odvozené třídy skryje vlastnost základní třídy a nebudete mít k dispozici přístup k metodě set základní třídy.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Vlastní atributy nejsou součástí systému společných typů.Custom attributes are not part of the common type system.

Pole nebo typy modelu COM nebudou vyhledány Pokud ještě nebyla načtena do tabulky dostupných tříd.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName může být název typu kvalifikovány podle svého oboru názvů nebo název kvalifikovaný pro sestavení, která zahrnuje specifikaci název sestavení.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. Zobrazit AssemblyQualifiedName.See AssemblyQualifiedName.

Pokud typeName obsahuje obor názvů, ale ne název sestavení, prohledává tato metoda pouze volání objektů sestavení a soubor Mscorlib.dll, v uvedeném pořadí.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. Pokud vlastnost typeName je plně kvalifikovaný název částečné nebo úplné sestavení, prohledává tato metoda v zadaném sestavení.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. Pokud sestavení se silným názvem, je požadován název dokončení sestavení.If the assembly has a strong name, a complete assembly name is required.

AssemblyQualifiedName Vlastnost vrátí plně kvalifikovaného názvu typu včetně vnořených typů, název sestavení a argumenty obecného typu.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and generic type arguments. Všechny kompilátory, které podporují modul Common Language Runtime, vygenerují jednoduchý název vnořené třídy a reflexe při dotazu sestaví pozměněný název podle následujících pravidel.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

Poznámka

Ve verzi 2.0 rozhraní.NET Framework je do identity sestavení přidána architektura procesoru a lze ji uvádět jako součást řetězců názvů sestavení.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. Příklad: "ProcessorArchitecture = msil".For example, "ProcessorArchitecture=msil". Ale není součástí řetězce vráceného AssemblyQualifiedName vlastnost z důvodu kompatibility.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. Můžete také načíst typy tak, že vytvoříte AssemblyName objektu a předají se jí odpovídající přetížení Load metoda.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. Pak můžete použít Assembly.GetType metoda načíst typy ze sestavení.You can then use the Assembly.GetType method to load types from the assembly. Viz také AssemblyName.ProcessorArchitecture.See also AssemblyName.ProcessorArchitecture.

OddělovačDelimiter VýznamMeaning
Zpětné lomítko (\)Backslash (\) Řídicí znak.Escape character.
Prvními (')Backtick (`) Předchází jedna nebo více číslic představující počet parametrů typu, nachází na konci názvu obecného typu.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
Hranaté závorky ([])Brackets ([]) Uzavřete seznam argumentů obecného typu, pro Konstruovaný obecný typ; v rámci seznamu argumentů typu uzavřete typu kvalifikovaného pro sestavení.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
Čárka (,)Comma (,) Předchází název sestavení.Precedes the Assembly name.
Tečka (.)Period (.) Určuje identifikátory oboru názvů.Denotes namespace identifiers.
Znaménko plus (+)Plus sign (+) Předchází vnořenou třídu.Precedes a nested class.

Plně kvalifikovaný název třídy může vypadat například takto:For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

Pokud byly TopNamespace.Sub+Namespace obor názvů, pak řetězec, musel předcházet na znaménko plus (+) s řídicím znakem (\) tak, aby se interpretuje jako oddělovač vnoření.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. Reflexe generuje tento řetězec následujícím způsobem:Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

Objekt "++" stane "\+\+" a "\"stane"\\".A "++" becomes "\+\+", and a "\" becomes "\\".

Tento kvalifikovaný název lze jako trvalý a později použít k načtení Type.This qualified name can be persisted and later used to load the Type. K vyhledání a načtení Type, použijte GetType buď s typem názvu pouze nebo s názvem typu kvalifikovaného sestavení.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType s typem název pouze bude hledat Type v sestavení volajícího a poté v systémovém sestavení.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType s sestavení bude hledat kvalifikovaným názvem typu Type v libovolném sestavení.GetType with the assembly qualified type name will look for the Type in any assembly.

Názvy typů mohou obsahovat koncové znaky poskytující další informace o typu, například zda se jedná o typ ukazatele, odkazu nebo pole.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. Chcete-li název typu načíst bez těchto koncových znaků, použijte t.GetElementType().ToString(), kde t je typem.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

Mezery jsou brány v úvahu ve všech součástech názvu typu s výjimkou názvu sestavení.Spaces are relevant in all type name components except the assembly name. V názvu sestavení jsou brány v úvahu mezery před oddělovačem ',', zatímco mezery za oddělovačem ',' jsou ignorovány.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

Název obecného typu končí řetězcem prvními (`) následované číslic představující počet argumentů obecného typu.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. Účelem této pozměnění názvu je povolit kompilátory pro podporu obecných typů se stejným názvem, ale s různý počet parametrů typu, ke kterým dochází ve stejném oboru.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. Například reflexe vrací pozměnění názvy Tuple1andřazené kolekce členů2 z obecných metod Tuple(Of T) a Tuple(Of T0, T1) v jazyce Visual Basic nebo Tuple<T> a řazené kolekce členů\<T0, T1> v jazyce Visual C#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

Pro obecné typy je seznam argumentů typu uzavřený v hranatých závorkách a argumenty typu jsou odděleny čárkami.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. Například obecný Dictionary<TKey,TValue> má dva parametry typu.For example, a generic Dictionary<TKey,TValue> has two type parameters. A Dictionary<TKey,TValue> z MyType s klíči typu String může být reprezentován následujícím způsobem:A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

K určení typu kvalifikovaného pro sestavení v rámci seznamu argumentů typu, uzavřete typu kvalifikovaného pro sestavení v závorkách.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. V opačném případě čárkami, které oddělují části název kvalifikovaný pro sestavení jsou interpretovány jako omezující typ další argumenty.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. Například Dictionary<TKey,TValue> z MyType fromMyAssembly.dll, pomocí klíčů typu String, může být určen následovně:For example, a Dictionary<TKey,TValue> of MyType fromMyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

Poznámka

Typu kvalifikovaného pro sestavení můžou být uzavřená v závorkách, pouze v případě, že se zobrazí v seznamu parametrů typu.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. Pravidla pro vyhledávání sestavení pro kvalifikovaný a neúplných typů v seznamech parametrů typu jsou stejná jako pravidla pro kvalifikovaný a nekvalifikované neobecné typy.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Typy s možnou hodnotou Null představují zvláštní případ obecných typů.Nullable types are a special case of generic types. Například nullable Int32 reprezentovaná tímto řetězcem "System.Nullable'1[System.Int32]".For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

Poznámka

V jazyce C#, C++ a Visual Basic můžete získat také pomocí operátorů typ typy připouštějící hodnotu Null.In C#, C++, and Visual Basic you can also get nullable types using type operators. Například, s možnou hodnotou Null Boolean je vrácený typ typeof(Nullable<bool>) v jazyce C# pomocí Nullable<Boolean>::typeid v jazyce C++ a tím GetType(Nullable(Of Boolean)) v jazyce Visual Basic.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

Následující tabulka ukazuje syntaxi pomocí GetType pro různé typy.The following table shows the syntax you use with GetType for various types.

Chcete-li získatTo Get PoužitíUse
S povolenou hodnotou Null Int32A nullable Int32 Type.GetType("System.Nullable1[System.Int32]")`Type.GetType("System.Nullable1[System.Int32]")`
Nespravovaný ukazatel na MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
Nespravovaný ukazatel na ukazatel na MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
Spravovaného ukazatele nebo odkazu na MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). Všimněte si, že na rozdíl od ukazatelů, odkazů jsou omezené na jedné úrovni.Note that unlike pointers, references are limited to one level.
Nadřazené třídy a vnořené třídyA parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
Jednorozměrné pole s dolní mez 0A one-dimensional array with a lower bound of 0 Type.GetType("MyType[]")
Jednorozměrné pole s neznámým rozsahem nižšíA one-dimensional array with an unknown lower bound Type.GetType("MyType[*]")
N rozměrné poleAn n-dimensional array Čárka (,) v závorkách a celkový počet n-1 časy.A comma (,) inside the brackets a total of n-1 times. Například System.Object[,,] představuje trojrozměrném Object pole.For example, System.Object[,,] represents a three-dimensional Object array.
Pole jednorozměrná poleAn array of one-dimensional arrays Type.GetType("MyType[][]")
Obdélníkové dvojrozměrné pole s dolní meze neznámýA rectangular two-dimensional array with unknown lower bounds Type.GetType("MyType[,]")
Obecný typ s jeden argument typuA generic type with one type argument Type.GetType("MyGenericType1[MyType]").Type.GetType("MyGenericType1[MyType]")`
Obecný typ s dvěma argumenty typuA generic type with two type arguments Type.GetType("MyGenericType2[MyType,AnotherType]").Type.GetType("MyGenericType2[MyType,AnotherType]")`
Obecný typ se dvěma argumenty typu kvalifikovaného pro sestaveníA generic type with two assembly-qualified type arguments Type.GetType("MyGenericType2[[MyType,myAssembly],[AnotherType,AnotherAssembly]]").Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`
Kvalifikovaný pro sestavení obecný typ s argumentem typu kvalifikovaného pro sestaveníAn assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType1[[MyType,myAssembly]],MyGenericTypeAssembly").Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`
Obecný typ, jehož argument typu je obecného typu pomocí dva argumenty typuA generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")
Zobrazit také

GetType(String, Boolean, Boolean)

Získá Type se zadaným názvem určující, jestli se má vyvolat výjimku, pokud není typ nalezen a jestli se mají vyhledávat v malá a velká písmena. Gets the Type with the specified name, specifying whether to throw an exception if the type is not found and whether to perform a case-sensitive search.

public static Type GetType (string typeName, bool throwOnError, bool ignoreCase);
Parametry
typeName
String

Název kvalifikovaný pro sestavení typu zobrazíte. The assembly-qualified name of the type to get. Zobrazit AssemblyQualifiedName. See AssemblyQualifiedName. Pokud je typ v právě spuštěné sestavení nebo Mscorlib.dll, stačí zadat název typu kvalifikovaný podle jejich oboru názvů. If the type is in the currently executing assembly or in Mscorlib.dll, it is sufficient to supply the type name qualified by its namespace.

throwOnError
Boolean

true vyvolá výjimku, pokud nelze najít typ; false vrátit null. Určení false potlačí i některé další podmínky výjimek, ale ne pro všechny z nich. true to throw an exception if the type cannot be found; false to return null.Specifying false also suppresses some other exception conditions, but not all of them. Viz část Výjimky. See the Exceptions section.

ignoreCase
Boolean

true můžete vyhledávat velkých a malých písmen pro typeName, false můžete vyhledávat velká a malá písmena pro typeName. true to perform a case-insensitive search for typeName, false to perform a case-sensitive search for typeName.

Návraty

Typ se zadaným názvem. The type with the specified name. Pokud není typ nalezen, throwOnError parametr určuje, zda null je vrácena nebo dojde k výjimce. If the type is not found, the throwOnError parameter specifies whether null is returned or an exception is thrown. V některých případech je vyvolána výjimka bez ohledu na hodnotu throwOnError. In some cases, an exception is thrown regardless of the value of throwOnError. Viz část Výjimky. See the Exceptions section.

Výjimky

typeName je null. typeName is null.

Je vyvolán inicializátor třídy, který vyvolá výjimku. A class initializer is invoked and throws an exception.

throwOnError je true a typ nebyl nalezen. throwOnError is true and the type is not found. -nebo- -or- throwOnError je true a typeName obsahuje neplatné znaky, jako je například vložené kartu. throwOnError is true and typeName contains invalid characters, such as an embedded tab. -nebo- -or- throwOnError je true a typeName je prázdný řetězec. throwOnError is true and typeName is an empty string. -nebo- -or- throwOnError je true a typeName reprezentuje typ pole s neplatnou velikostí. throwOnError is true and typeName represents an array type with an invalid size. -nebo- -or- typeName reprezentuje pole prvků TypedReference. typeName represents an array of TypedReference.

throwOnError je true a typeName obsahuje neplatnou syntaxi. throwOnError is true and typeName contains invalid syntax. Například "MyType [, *,]". For example, "MyType[,*,]". -nebo- -or- typeName reprezentuje obecný typ, který má typ ukazatele, ByRef typ, nebo Void jako jeden z argumentů typu. typeName represents a generic type that has a pointer type, a ByRef type, or Void as one of its type arguments. -nebo- -or- typeName reprezentuje obecný typ, který má nesprávný počet argumentů typu. typeName represents a generic type that has an incorrect number of type arguments. -nebo- -or- typeName reprezentuje obecný typ, a jeden z argumentů typu nevyhovuje omezením pro odpovídající typ parametru. typeName represents a generic type, and one of its type arguments does not satisfy the constraints for the corresponding type parameter.

throwOnError je true a sestavení nebo některý z jeho závislostí nebyla nalezena. throwOnError is true and the assembly or one of its dependencies was not found.

Sestavení nebo některý prvek, na kterém závisí, byly nalezeny, ale nepodařilo se je načíst. The assembly or one of its dependencies was found, but could not be loaded.

Sestavení nebo některý objekt, na kterém závisí, nejsou platné. The assembly or one of its dependencies is not valid. -nebo- -or- Je aktuálně načtená verze 2.0 nebo novější modul common language runtime a sestavení bylo zkompilováno pomocí novější verze. Version 2.0 or later of the common language runtime is currently loaded, and the assembly was compiled with a later version.

Poznámky

Můžete použít GetType metodu k získání Type objektu pro typ v jiném sestavení, pokud znáte jeho název kvalifikovaný pro sestavení, kterou lze získat z AssemblyQualifiedName.You can use the GetType method to obtain a Type object for a type in another assembly, if you know its assembly-qualified name which can be obtained from AssemblyQualifiedName. GetType způsobí, že načítání sestavení zadaná v typeName.GetType causes loading of the assembly specified in typeName. Můžete také načíst sestavení pomocí Load metoda a pak GetType nebo GetTypes metody Assembly třídy pro získání Type objekty.You can also load an assembly using the Load method, and then use the GetType or GetTypes methods of the Assembly class to get Type objects. Pokud je typ v sestavení v době kompilace znám vašemu programu, je výhodnější používat typeof v jazyce C#, GetType v jazyce Visual Basic nebo typeid v jazyce C++.If a type is in an assembly known to your program at compile time, it is more efficient to use typeof in C#, GetType in Visual Basic, or typeid in C++.

GetType funguje pouze na sestavení načtené z disku.GetType only works on assemblies loaded from disk. Při volání GetType k vyhledání typ definovaný v dynamickém sestavení definované pomocí System.Reflection.Emit služeb, může se zobrazit nekonzistentní chování.If you call GetType to look up a type defined in a dynamic assembly defined using the System.Reflection.Emit services, you might get inconsistent behavior. Chování závisí na tom, zda dynamická sestavení trvalá, to znamená, vytvořené pomocí RunAndSave nebo Save přístup režimy System.Reflection.Emit.AssemblyBuilderAccess výčtu.The behavior depends on whether the dynamic assembly is persistent, that is, created using the RunAndSave or Save access modes of the System.Reflection.Emit.AssemblyBuilderAccess enumeration. Pokud dynamické sestavení je trvalé a byl zapsán na disk před GetType je volána, zavaděč najde uložené sestavení na disku, načte sestavení a načte typ z tohoto sestavení.If the dynamic assembly is persistent and has been written to disk before GetType is called, the loader finds the saved assembly on disk, loads that assembly, and retrieves the type from that assembly. Pokud sestavení nebyla uložena na disk, pokud GetType je volána metoda vrátí null.If the assembly has not been saved to disk when GetType is called, the method returns null. GetType nerozumí přechodné dynamické sestavení; Proto volání GetType načíst typ v přechodnou dynamické sestavení vrátí null.GetType does not understand transient dynamic assemblies; therefore, calling GetType to retrieve a type in a transient dynamic assembly returns null.

Chcete-li použít GetType v dynamickém modulu, přihlaste se k odběru AppDomain.AssemblyResolve událostí a volání GetType před uložením.To use GetType on a dynamic module, subscribe to the AppDomain.AssemblyResolve event and call GetType before saving. Jinak se zobrazí dvě kopie sestavení v paměti.Otherwise, you will get two copies of the assembly in memory.

throwOnError Parametr určuje, co se stane, když typ nebyl nalezen a potlačí i některé další podmínky výjimek, jak je popsáno v části výjimky.The throwOnError parameter specifies what happens when the type is not found, and also suppresses certain other exception conditions, as described in the Exceptions section. Některé výjimky jsou vyvolány bez ohledu na hodnotu throwOnError.Some exceptions are thrown regardless of the value of throwOnError. Například, pokud typ nenajde, ale nelze načíst TypeLoadException dojde i v případě throwOnError je false.For example, if the type is found but cannot be loaded, a TypeLoadException is thrown even if throwOnError is false.

Následující tabulka uvádí, co jsou vrácené členy základní třídy Get při reflexi typu.The following table shows what members of a base class are returned by the Get methods when reflecting on a type.

Typ členuMember Type StaticStatic NestatickýNon-Static
KonstruktorConstructor NeNo NeNo
PoleField NeNo Ano.Yes. Pole je vždy skrýváno podle názvu a podpisu.A field is always hide-by-name-and-signature.
UdálostEvent Nelze použítNot applicable Pro systém typů platí obecné pravidlo, že dědičnost je stejná jako u metod, které implementují vlastnost.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflexe pracuje s třídami jako se skrývanými podle názvu a podpisu.Reflection treats properties as hide-by-name-and-signature. Viz poznámka 2 níže.See note 2 below.
MetodaMethod NeNo Ano.Yes. Metody (virtuální i nevirtuální) mohou být skrývány podle názvu nebo podle názvu a podpisu.A method (both virtual and non-virtual) can be hide-by-name or hide-by-name-and-signature.
Vnořený typNested Type NeNo NeNo
VlastnostProperty Nelze použítNot applicable Pro systém typů platí obecné pravidlo, že dědičnost je stejná jako u metod, které implementují vlastnost.The common type system rule is that the inheritance is the same as that of the methods that implement the property. Reflexe pracuje s třídami jako se skrývanými podle názvu a podpisu.Reflection treats properties as hide-by-name-and-signature. Viz poznámka 2 níže.See note 2 below.
  1. Skrývání podle názvu a podpisu bere v úvahu všechny části podpisu včetně vlastních modifikátorů, návratových typů, typů parametrů, sentinelů a nespravovaných konvencí volání.Hide-by-name-and-signature considers all of the parts of the signature, including custom modifiers, return types, parameter types, sentinels, and unmanaged calling conventions. Jedná se o binární porovnání.This is a binary comparison.

  2. Pro účely reflexe jsou vlastnosti a události skrývány podle názvu a podpisu.For reflection, properties and events are hide-by-name-and-signature. Má-li vlastnost v základní třídě přístupové metody get i set, ale odvozená třída má pouze přístupovou metodu get, vlastnost odvozené třídy skryje vlastnost základní třídy a nebudete mít k dispozici přístup k metodě set základní třídy.If you have a property with both a get and a set accessor in the base class, but the derived class has only a get accessor, the derived class property hides the base class property, and you will not be able to access the setter on the base class.

  3. Vlastní atributy nejsou součástí systému společných typů.Custom attributes are not part of the common type system.

Pole nebo typy modelu COM nebudou vyhledány Pokud ještě nebyla načtena do tabulky dostupných tříd.Arrays or COM types are not searched for unless they have already been loaded into the table of available classes.

typeName může být název typu kvalifikovány podle svého oboru názvů nebo název kvalifikovaný pro sestavení, která zahrnuje specifikaci název sestavení.typeName can be the type name qualified by its namespace or an assembly-qualified name that includes an assembly name specification. Zobrazit AssemblyQualifiedName.See AssemblyQualifiedName.

Pokud typeName obsahuje obor názvů, ale ne název sestavení, prohledává tato metoda pouze volání objektů sestavení a soubor Mscorlib.dll, v uvedeném pořadí.If typeName includes the namespace but not the assembly name, this method searches only the calling object's assembly and Mscorlib.dll, in that order. Pokud vlastnost typeName je plně kvalifikovaný název částečné nebo úplné sestavení, prohledává tato metoda v zadaném sestavení.If typeName is fully qualified with the partial or complete assembly name, this method searches in the specified assembly. Pokud sestavení se silným názvem, je požadován název dokončení sestavení.If the assembly has a strong name, a complete assembly name is required.

AssemblyQualifiedName Vlastnost vrátí plně kvalifikovaného názvu typu včetně vnořených typů, název sestavení a argumenty typu.The AssemblyQualifiedName property returns a fully qualified type name including nested types, the assembly name, and type arguments. Všechny kompilátory, které podporují modul Common Language Runtime, vygenerují jednoduchý název vnořené třídy a reflexe při dotazu sestaví pozměněný název podle následujících pravidel.All compilers that support the common language runtime will emit the simple name of a nested class, and reflection constructs a mangled name when queried, in accordance with the following conventions.

Poznámka

Ve verzi 2.0 rozhraní.NET Framework je do identity sestavení přidána architektura procesoru a lze ji uvádět jako součást řetězců názvů sestavení.In the .NET Framework version 2.0, processor architecture is added to assembly identity, and can be specified as part of assembly name strings. Příklad: "ProcessorArchitecture = msil".For example, "ProcessorArchitecture=msil". Ale není součástí řetězce vráceného AssemblyQualifiedName vlastnost z důvodu kompatibility.However, it is not included in the string returned by the AssemblyQualifiedName property, for compatibility reasons. Můžete také načíst typy tak, že vytvoříte AssemblyName objektu a předají se jí odpovídající přetížení Load metoda.You can also load types by creating an AssemblyName object and passing it to an appropriate overload of the Load method. Pak můžete použít Assembly.GetType metoda načíst typy ze sestavení.You can then use the Assembly.GetType method to load types from the assembly. Viz také AssemblyName.ProcessorArchitecture.See also AssemblyName.ProcessorArchitecture.

OddělovačDelimiter VýznamMeaning
Zpětné lomítko (\)Backslash (\) Řídicí znak.Escape character.
Prvními (')Backtick (`) Předchází jedna nebo více číslic představující počet parametrů typu, nachází na konci názvu obecného typu.Precedes one or more digits representing the number of type parameters, located at the end of the name of a generic type.
Hranaté závorky ([])Brackets ([]) Uzavřete seznam argumentů obecného typu, pro Konstruovaný obecný typ; v rámci seznamu argumentů typu uzavřete typu kvalifikovaného pro sestavení.Enclose a generic type argument list, for a constructed generic type; within a type argument list, enclose an assembly-qualified type.
Čárka (,)Comma (,) Předchází název sestavení.Precedes the Assembly name.
Tečka (.)Period (.) Určuje identifikátory oboru názvů.Denotes namespace identifiers.
Znaménko plus (+)Plus sign (+) Předchází vnořenou třídu.Precedes a nested class.

Plně kvalifikovaný název třídy může vypadat například takto:For example, the fully qualified name for a class might look like this:

TopNamespace.SubNameSpace.ContainingClass+NestedClass,MyAssembly  

Pokud byly TopNamespace.Sub+Namespace obor názvů, pak řetězec, musel předcházet na znaménko plus (+) s řídicím znakem (\) tak, aby se interpretuje jako oddělovač vnoření.If the namespace were TopNamespace.Sub+Namespace, then the string would have to precede the plus sign (+) with an escape character (\) to prevent it from being interpreted as a nesting separator. Reflexe generuje tento řetězec následujícím způsobem:Reflection emits this string as follows:

TopNamespace.Sub\+Namespace.ContainingClass+NestedClass,MyAssembly  

Objekt "++" stane "\+\+" a "\"stane"\\".A "++" becomes "\+\+", and a "\" becomes "\\".

Tento kvalifikovaný název lze jako trvalý a později použít k načtení Type.This qualified name can be persisted and later used to load the Type. K vyhledání a načtení Type, použijte GetType buď s typem názvu pouze nebo s názvem typu kvalifikovaného sestavení.To search for and load a Type, use GetType either with the type name only or with the assembly qualified type name. GetType s typem název pouze bude hledat Type v sestavení volajícího a poté v systémovém sestavení.GetType with the type name only will look for the Type in the caller's assembly and then in the System assembly. GetType s sestavení bude hledat kvalifikovaným názvem typu Type v libovolném sestavení.GetType with the assembly qualified type name will look for the Type in any assembly.

Názvy typů mohou obsahovat koncové znaky poskytující další informace o typu, například zda se jedná o typ ukazatele, odkazu nebo pole.Type names may include trailing characters that denote additional information about the type, such as whether the type is a reference type, a pointer type or an array type. Chcete-li název typu načíst bez těchto koncových znaků, použijte t.GetElementType().ToString(), kde t je typem.To retrieve the type name without these trailing characters, use t.GetElementType().ToString(), where t is the type.

Mezery jsou brány v úvahu ve všech součástech názvu typu s výjimkou názvu sestavení.Spaces are relevant in all type name components except the assembly name. V názvu sestavení jsou brány v úvahu mezery před oddělovačem ',', zatímco mezery za oddělovačem ',' jsou ignorovány.In the assembly name, spaces before the ',' separator are relevant, but spaces after the ',' separator are ignored.

Název obecného typu končí řetězcem prvními (`) následované číslic představující počet argumentů obecného typu.The name of a generic type ends with a backtick (`) followed by digits representing the number of generic type arguments. Účelem této pozměnění názvu je povolit kompilátory pro podporu obecných typů se stejným názvem, ale s různý počet parametrů typu, ke kterým dochází ve stejném oboru.The purpose of this name mangling is to allow compilers to support generic types with the same name but with different numbers of type parameters, occurring in the same scope. Například reflexe vrací pozměnění názvy Tuple1andřazené kolekce členů2 z obecných metod Tuple(Of T) a Tuple(Of T0, T1) v jazyce Visual Basic nebo Tuple<T> a řazené kolekce členů\<T0, T1> v jazyce Visual C#.For example, reflection returns the mangled names Tuple1andTuple2 from the generic methods Tuple(Of T) and Tuple(Of T0, T1) in Visual Basic, or Tuple<T> and Tuple\<T0, T1> in Visual C#.

Pro obecné typy je seznam argumentů typu uzavřený v hranatých závorkách a argumenty typu jsou odděleny čárkami.For generic types, the type argument list is enclosed in brackets, and the type arguments are separated by commas. Například obecný Dictionary<TKey,TValue> má dva parametry typu.For example, a generic Dictionary<TKey,TValue> has two type parameters. A Dictionary<TKey,TValue> z MyType s klíči typu String může být reprezentován následujícím způsobem:A Dictionary<TKey,TValue> of MyType with keys of type String might be represented as follows:

System.Collections.Generic.Dictionary`2[System.String,MyType]  

K určení typu kvalifikovaného pro sestavení v rámci seznamu argumentů typu, uzavřete typu kvalifikovaného pro sestavení v závorkách.To specify an assembly-qualified type within a type argument list, enclose the assembly-qualified type within brackets. V opačném případě čárkami, které oddělují části název kvalifikovaný pro sestavení jsou interpretovány jako omezující typ další argumenty.Otherwise, the commas that separate the parts of the assembly-qualified name are interpreted as delimiting additional type arguments. Například Dictionary<TKey,TValue> z MyType z knihovny MyAssembly.dll, pomocí klíčů typu String, může být určen následovně:For example, a Dictionary<TKey,TValue> of MyType from MyAssembly.dll, with keys of type String, might be specified as follows:

Type.GetType("System.Collections.Generic.Dictionary`2[System.String,[MyType,MyAssembly]]")  

Poznámka

Typu kvalifikovaného pro sestavení můžou být uzavřená v závorkách, pouze v případě, že se zobrazí v seznamu parametrů typu.An assembly-qualified type can be enclosed in brackets only when it appears within a type parameter list. Pravidla pro vyhledávání sestavení pro kvalifikovaný a neúplných typů v seznamech parametrů typu jsou stejná jako pravidla pro kvalifikovaný a nekvalifikované neobecné typy.The rules for searching assemblies for qualified and unqualified types in type parameter lists are the same as the rules for qualified and unqualified nongeneric types.

Typy s možnou hodnotou Null představují zvláštní případ obecných typů.Nullable types are a special case of generic types. Například nullable Int32 reprezentovaná tímto řetězcem "System.Nullable'1[System.Int32]".For example, a nullable Int32 is represented by the string "System.Nullable`1[System.Int32]".

Poznámka

V jazyce C#, C++ a Visual Basic můžete získat také pomocí operátorů typ typy připouštějící hodnotu Null.In C#, C++, and Visual Basic you can also get nullable types using type operators. Například, s možnou hodnotou Null Boolean je vrácený typ typeof(Nullable<bool>) v jazyce C# pomocí Nullable<Boolean>::typeid v jazyce C++ a tím GetType(Nullable(Of Boolean)) v jazyce Visual Basic.For example, the nullable Boolean type is returned by typeof(Nullable<bool>) in C#, by Nullable<Boolean>::typeid in C++, and by GetType(Nullable(Of Boolean)) in Visual Basic.

Následující tabulka ukazuje syntaxi pomocí GetType pro různé typy.The following table shows the syntax you use with GetType for various types.

Chcete-li získatTo Get PoužitíUse
S povolenou hodnotou Null Int32A nullable Int32 Type.GetType("System.Nullable1[System.Int32]")`Type.GetType("System.Nullable1[System.Int32]")`
Nespravovaný ukazatel na MyTypeAn unmanaged pointer to MyType Type.GetType("MyType*")
Nespravovaný ukazatel na ukazatel na MyTypeAn unmanaged pointer to a pointer to MyType Type.GetType("MyType**")
Spravovaného ukazatele nebo odkazu na MyTypeA managed pointer or reference to MyType Type.GetType("MyType&").Type.GetType("MyType&"). Všimněte si, že na rozdíl od ukazatelů, odkazů jsou omezené na jedné úrovni.Note that unlike pointers, references are limited to one level.
Nadřazené třídy a vnořené třídyA parent class and a nested class Type.GetType("MyParentClass+MyNestedClass")
Jednorozměrné pole s dolní mez 0A one-dimensional array with a lower bound of 0 Type.GetType("MyArray[]")
Jednorozměrné pole s neznámým rozsahem nižšíA one-dimensional array with an unknown lower bound Type.GetType("MyArray[*]")
N rozměrné poleAn n-dimensional array Čárka (,) v závorkách a celkový počet n-1 časy.A comma (,) inside the brackets a total of n-1 times. Například System.Object[,,] představuje trojrozměrném Object pole.For example, System.Object[,,] represents a three-dimensional Object array.
Pole dvourozměrné poleA two-dimensional array's array Type.GetType("MyArray[][]")
Obdélníkové dvojrozměrné pole s dolní meze neznámýA rectangular two-dimensional array with unknown lower bounds Type.GetType("MyArray[,]")
Obecný typ s jeden argument typuA generic type with one type argument Type.GetType("MyGenericType1[MyType]").Type.GetType("MyGenericType1[MyType]")`
Obecný typ s dvěma argumenty typuA generic type with two type arguments Type.GetType("MyGenericType2[MyType,AnotherType]").Type.GetType("MyGenericType2[MyType,AnotherType]")`
Obecný typ se dvěma argumenty typu kvalifikovaného pro sestaveníA generic type with two assembly-qualified type arguments Type.GetType("MyGenericType2[[MyType,myAssembly],[AnotherType,AnotherAssembly]]").Type.GetType("MyGenericType2[[MyType,MyAssembly],[AnotherType,AnotherAssembly]]")`
Kvalifikovaný pro sestavení obecný typ s argumentem typu kvalifikovaného pro sestaveníAn assembly-qualified generic type with an assembly-qualified type argument Type.GetType("MyGenericType1[[MyType,myAssembly]],MyGenericTypeAssembly").Type.GetType("MyGenericType1[[MyType,MyAssembly]],MyGenericTypeAssembly")`
Obecný typ, jehož argument typu je obecného typu pomocí dva argumenty typuA generic type whose type argument is a generic type with two type arguments Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")Type.GetType("MyGenericType1[AnotherGenericType2[MyType,AnotherType]]")
Zobrazit také

Platí pro