TypeConverter Třída

Definice

Poskytuje jednotný způsob převodu typů hodnot na jiné typy a také pro přístup ke standardním hodnotám a podvlastnostem.Provides a unified way of converting types of values to other types, as well as for accessing standard values and subproperties.

public ref class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
type TypeConverter = class
Public Class TypeConverter
Dědičnost
TypeConverter
Odvozené
Atributy

Příklady

Následující příklad kódu ukazuje, jak vytvořit instanci konvertoru typu a vytvořit jeho svázání s třídou.The following code example shows how to create an instance of a type converter and bind it to a class. Třída implementující převaděč, MyClassConvertermusí dědit z TypeConverter třídy.The class implementing the converter, MyClassConverter, must inherit from the TypeConverter class.

public:
   [TypeConverter(Sample::MyClassConverter::typeid)]
   ref class MyClass
   {
      // Insert code here.
   };
[TypeConverter(typeof(MyClassConverter))]
 public class MyClass {
    // Insert code here.
}
<TypeConverter(GetType(MyClassConverter))> _
Public Class Class1
    ' Insert code here.
End Class

Pokud máte vlastnost, která má výčet, zkontrolujte, zda je hodnota výčtu platná před nastavením vlastnosti.When you have a property that has an enumeration, check to see whether an enumeration value is valid before setting the property. Následující příklad kódu vyžaduje, aby byl deklarován výčet s názvem MyPropertyEnum.The next code example requires that an enumeration called MyPropertyEnum has been declared.

public:
   property MyPropertyEnum MyProperty 
   {
      void set( MyPropertyEnum value )
      {
         // Checks to see if the value passed is valid.
         if ( !TypeDescriptor::GetConverter( MyPropertyEnum::typeid )->IsValid( value ) )
         {
            throw gcnew ArgumentException;
         }
         // The value is valid. Insert code to set the property.
      }
   }
public MyPropertyEnum MyProperty {
    set {
       // Checks to see if the value passed is valid.
       if (!TypeDescriptor.GetConverter(typeof(MyPropertyEnum)).IsValid(value)) {
          throw new ArgumentException();
       }
       // The value is valid. Insert code to set the property.
    }
 }

Public WriteOnly Property MyProperty() As MyPropertyEnum
    Set
        ' Checks to see if the value passed is valid.
        If Not TypeDescriptor.GetConverter(GetType(MyPropertyEnum)).IsValid(value) Then
            Throw New ArgumentException()
        End If
        ' The value is valid. Insert code to set the property.
    End Set 
End Property

Dalším běžným použitím konvertoru typu je převést objekt na řetězec.Another common type converter usage is to convert an object to a string. Následující příklad kódu vytiskne název Color uložený v proměnné c.The following code example prints out the name of the Color stored in the variable c.

Color c = Color::Red;
Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
Color c = Color.Red;
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
Dim c As Color = Color.Red
Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))

Můžete také použít konvertor typu pro převod hodnoty z jejího názvu, jak je znázorněno v následujícím příkladu kódu.You can also use a type converter to convert a value from its name, as shown in the next code example.

Color c =  (Color)(TypeDescriptor::GetConverter( Color::typeid )->ConvertFromString( "Red" ));
Color c = (Color)TypeDescriptor.GetConverter(typeof(Color)).ConvertFromString("Red");
Dim c As Color = CType(TypeDescriptor.GetConverter(GetType(Color)).ConvertFromString("Red"), Color)

V následujícím příkladu kódu můžete použít konvertor typu k vytištění sady standardních hodnot, které objekt podporuje.In the following code example, you can use a type converter to print out the set of standard values that the object supports.

for each ( Color c in TypeDescriptor::GetConverter( Color::typeid )->GetStandardValues() )
{
   Console::WriteLine( TypeDescriptor::GetConverter( c )->ConvertToString( c ) );
}
foreach(Color c in TypeDescriptor.GetConverter(typeof(Color)).GetStandardValues()) {
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c));
 }
Dim c As Color
For Each c In  TypeDescriptor.GetConverter(GetType(Color)).GetStandardValues()
    Console.WriteLine(TypeDescriptor.GetConverter(c).ConvertToString(c))
Next c

Poznámky

Nejběžnější typ převaděče je ten, který se převede na text a z textové reprezentace.The most common type of converter is one that converts to and from a text representation. Konvertor typu pro třídu je vázán na třídu s TypeConverterAttribute.The type converter for a class is bound to the class with a TypeConverterAttribute. Pokud tento atribut není přepsán, všechny třídy, které dědí z této třídy, používají stejný konvertor typu jako základní třída.Unless this attribute is overridden, all classes that inherit from this class use the same type converter as the base class.

Poznámka

Pro účely obecného typu systému nepoužívejte přímý přístup k konvertoru typu.For general type system purposes, do not access a type converter directly. Místo toho přístup k příslušnému převaděči získáte pomocí TypeDescriptor.Instead, access the appropriate converter by using TypeDescriptor. Další informace najdete v uvedených příkladech kódu.For more information, see the code examples provided.

Při použití XAML ale procesor XAML vyhledává TypeConverterAttribute přímo místo toho, aby procházel TypeDescriptor.However, when using XAML, a XAML processor searches for the TypeConverterAttribute directly, instead of going through TypeDescriptor. Pro případy, kdy chcete TypeDescriptor instanci z kódu nebo kde vytvoříte sdílenou instanci v prostøedích WPF, je přijatelné ji přímo sestavit bez odkazování na TypeDescriptor nebo jiné reflexe a podpora systému typů.For cases where you do want a TypeDescriptor instance from code, or where you create a shared instance in WPF resources, it is acceptable to construct it directly without referencing TypeDescriptor or other reflection and type system support.

Třídy odvozené od TypeConverter jsou často odkazovány jako součást způsobu, jakým procesor XAML převádí atribut nebo inicializační textovou hodnotu ze značky (která je v podstatě řetězec) a generuje objekt pro reprezentaci run-time.Classes derived from TypeConverter are often referenced as part of how a XAML processor converts an attribute or initialization text value from markup (which is inherently a string) and generates an object for a run-time representation. Vlastní autoři typů, kteří mají v úmyslu podporovat chování převodu typu pro XAML, obvykle implementují třídu TypeConverter, která podporuje jejich vlastní jedinečné chování ConvertFrom z řetězce.Custom type authors that intend to support a type conversion behavior for XAML typically implement a TypeConverter class that supports their own unique ConvertFrom behavior from a string. Toto chování povoluje převod typu z řetězce poskytnutého jako hodnota atributu XAML a poskytuje procesor XAML s podporou potřebnou k vytvoření objektu z řetězce, aby bylo možné objekt vytvořit v grafu analyzovaného objektu.This behavior enables type conversion from the string provided as a XAML attribute value and provides a XAML processor with the support needed to create an object from the string, so that the object can be produced in a parsed object graph. Vlastní typy nebo členy vlastních typů jsou označeny použitím TypeConverterAttribute na definice s atributem odkazujícím na vlastní implementaci TypeConverter.Custom types or members of custom types are indicated by applying TypeConverterAttribute to the definitions, with the attribute referencing the custom TypeConverter implementation. Další informace naleznete v tématu Přehled převaděčů typů pro jazyk XAML.For more information, see Type Converters for XAML Overview.

Poznámky pro dědice

Zdědit z TypeConverter k implementaci vlastních požadavků na převod.Inherit from TypeConverter to implement your own conversion requirements. Při dědění z této třídy můžete přepsat následující metody:When you inherit from this class, you can override the following methods: – Chcete-li podporovat převod vlastního typu, přepište metody CanConvertFrom(ITypeDescriptorContext, Type), CanConvertTo(ITypeDescriptorContext, Type), ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)a ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type).- To support custom type conversion, override the CanConvertFrom(ITypeDescriptorContext, Type), CanConvertTo(ITypeDescriptorContext, Type), ConvertFrom(ITypeDescriptorContext, CultureInfo, Object), and ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) methods.

– Chcete-li převést typy, které musí znovu vytvořit objekt pro změnu jeho hodnoty, přepište CreateInstance(ITypeDescriptorContext, IDictionary) a GetCreateInstanceSupported(ITypeDescriptorContext) metody.- To convert types that must re-create the object to change its value, override the CreateInstance(ITypeDescriptorContext, IDictionary) and GetCreateInstanceSupported(ITypeDescriptorContext) methods.

– Chcete-li převést typy, které podporují vlastnosti, přepište metody GetProperties(ITypeDescriptorContext, Object, Attribute[]) a GetPropertiesSupported(ITypeDescriptorContext).- To convert types that support properties, override the GetProperties(ITypeDescriptorContext, Object, Attribute[]) and GetPropertiesSupported(ITypeDescriptorContext) methods. Pokud třída, kterou převádíte, nemá vlastnosti a je nutné implementovat vlastnosti, můžete použít třídu TypeConverter.SimplePropertyDescriptor jako základ pro implementaci popisovačů vlastností.If the class you are converting does not have properties, and you need to implement properties, you can use the TypeConverter.SimplePropertyDescriptor class as a base for implementing the property descriptors. Při dědění z TypeConverter.SimplePropertyDescriptormusíte přepsat metody GetValue(Object) a SetValue(Object, Object).When you inherit from TypeConverter.SimplePropertyDescriptor, you must override the GetValue(Object) and SetValue(Object, Object) methods.

– Chcete-li převést typy, které podporují standardní hodnoty, přepište GetStandardValues(ITypeDescriptorContext), GetStandardValuesExclusive(ITypeDescriptorContext), GetStandardValuesSupported(ITypeDescriptorContext) a IsValid(ITypeDescriptorContext, Object) metody.- To convert types that support standard values, override the GetStandardValues(ITypeDescriptorContext), GetStandardValuesExclusive(ITypeDescriptorContext), GetStandardValuesSupported(ITypeDescriptorContext) and IsValid(ITypeDescriptorContext, Object) methods.


Váš odvozený typ může být označen jako internal nebo private, ale instanci typu lze vytvořit pomocí třídy TypeDescriptor.Your derived type might be marked as internal or private, but an instance of your type can be created with the TypeDescriptor class. Nepište nezabezpečený kód za předpokladu, že volající je důvěryhodný.Do not write insecure code by assuming the caller is trusted. Předpokládat, že volající mohou vytvořit instance vašeho typu v částečném vztahu důvěryhodnosti.Assume instead that callers might create instances of your type in partial trust.

Další informace o převaděčích typů pro obecné účely (jiné než XAML) naleznete v tématu [How to: Implementing Converter Type](https://docs.microsoft.com/previous-versions/visualstudio/visual-studio-2013/ayybcxe5(v=vs.120)) nebo [Generalized Type Conversion](https://msdn.microsoft.com/library/49253ae6-7657-4810-82ab-1176a6feeada).For more information about type converters for general (non-XAML) purposes, see [How to: Implement a Type Converter](https://docs.microsoft.com/previous-versions/visualstudio/visual-studio-2013/ayybcxe5(v=vs.120)) or [Generalized Type Conversion](https://msdn.microsoft.com/library/49253ae6-7657-4810-82ab-1176a6feeada).

Konstruktory

TypeConverter()

Inicializuje novou instanci třídy TypeConverter třídy.Initializes a new instance of the TypeConverter class.

Metody

CanConvertFrom(ITypeDescriptorContext, Type)

Vrátí, zda tento převaděč může převést objekt daného typu na typ tohoto převaděče pomocí zadaného kontextu.Returns whether this converter can convert an object of the given type to the type of this converter, using the specified context.

CanConvertFrom(Type)

Vrátí, zda tento převaděč může převést objekt daného typu na typ tohoto převaděče.Returns whether this converter can convert an object of the given type to the type of this converter.

CanConvertTo(ITypeDescriptorContext, Type)

Vrátí, zda tento převaděč může převést objekt na zadaný typ pomocí zadaného kontextu.Returns whether this converter can convert the object to the specified type, using the specified context.

CanConvertTo(Type)

Vrátí, zda tento převaděč může převést objekt na zadaný typ.Returns whether this converter can convert the object to the specified type.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Převede daný objekt na typ tohoto převaděče pomocí zadaných informací o kontextu a jazykové verzi.Converts the given object to the type of this converter, using the specified context and culture information.

ConvertFrom(Object)

Převede danou hodnotu na typ tohoto převaděče.Converts the given value to the type of this converter.

ConvertFromInvariantString(ITypeDescriptorContext, String)

Převede daný řetězec na typ tohoto převaděče s použitím neutrální jazykové verze a zadaného kontextu.Converts the given string to the type of this converter, using the invariant culture and the specified context.

ConvertFromInvariantString(String)

Převede daný řetězec na typ tohoto převaděče s použitím invariantní jazykové verze.Converts the given string to the type of this converter, using the invariant culture.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Převede daný text na objekt pomocí zadaných informací o kontextu a jazykové verzi.Converts the given text to an object, using the specified context and culture information.

ConvertFromString(ITypeDescriptorContext, String)

Převede daný text na objekt pomocí zadaného kontextu.Converts the given text to an object, using the specified context.

ConvertFromString(String)

Převede zadaný text na objekt.Converts the specified text to an object.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Převede daný objekt Value na zadaný typ pomocí zadaných informací o kontextu a jazykové verzi.Converts the given value object to the specified type, using the specified context and culture information.

ConvertTo(Object, Type)

Převede daný objekt Value na zadaný typ pomocí argumentů.Converts the given value object to the specified type, using the arguments.

ConvertToInvariantString(ITypeDescriptorContext, Object)

Převede zadanou hodnotu na reprezentaci typu invariantní řetězcové verze pomocí zadaného kontextu.Converts the specified value to a culture-invariant string representation, using the specified context.

ConvertToInvariantString(Object)

Převede zadanou hodnotu na reprezentaci neutrální řetězcové verze.Converts the specified value to a culture-invariant string representation.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Převede danou hodnotu na řetězcovou reprezentaci pomocí zadaných informací o kontextu a jazykové verzi.Converts the given value to a string representation, using the specified context and culture information.

ConvertToString(ITypeDescriptorContext, Object)

Převede danou hodnotu na řetězcovou reprezentaci pomocí daného kontextu.Converts the given value to a string representation, using the given context.

ConvertToString(Object)

Převede zadanou hodnotu na řetězcovou reprezentaci.Converts the specified value to a string representation.

CreateInstance(IDictionary)

Znovu vytvoří Object pro danou sadu hodnot vlastností pro objekt.Re-creates an Object given a set of property values for the object.

CreateInstance(ITypeDescriptorContext, IDictionary)

Vytvoří instanci typu, ke kterému je tento TypeConverter přidružen, pomocí zadaného kontextu s ohledem na sadu hodnot vlastností pro objekt.Creates an instance of the type that this TypeConverter is associated with, using the specified context, given a set of property values for the object.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetConvertFromException(Object)

Vrátí výjimku, která se má vyvolat, když se nedá provést převod.Returns an exception to throw when a conversion cannot be performed.

GetConvertToException(Object, Type)

Vrátí výjimku, která se má vyvolat, když se nedá provést převod.Returns an exception to throw when a conversion cannot be performed.

GetCreateInstanceSupported()

Vrátí, zda změna hodnoty na tomto objektu vyžaduje volání metody CreateInstance(IDictionary) pro vytvoření nové hodnoty.Returns whether changing a value on this object requires a call to the CreateInstance(IDictionary) method to create a new value.

GetCreateInstanceSupported(ITypeDescriptorContext)

Vrátí, zda změna hodnoty na tomto objektu vyžaduje volání CreateInstance(IDictionary) k vytvoření nové hodnoty pomocí zadaného kontextu.Returns whether changing a value on this object requires a call to CreateInstance(IDictionary) to create a new value, using the specified context.

GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetProperties(ITypeDescriptorContext, Object)

Vrátí kolekci vlastností pro typ pole určeného parametrem value pomocí zadaného kontextu.Returns a collection of properties for the type of array specified by the value parameter, using the specified context.

GetProperties(ITypeDescriptorContext, Object, Attribute[])

Vrátí kolekci vlastností pro typ pole určeného parametrem value pomocí zadaného kontextu a atributů.Returns a collection of properties for the type of array specified by the value parameter, using the specified context and attributes.

GetProperties(Object)

Vrátí kolekci vlastností pro typ pole určeného parametrem value.Returns a collection of properties for the type of array specified by the value parameter.

GetPropertiesSupported()

Vrátí, zda tento objekt podporuje vlastnosti.Returns whether this object supports properties.

GetPropertiesSupported(ITypeDescriptorContext)

Vrátí, zda tento objekt podporuje vlastnosti pomocí zadaného kontextu.Returns whether this object supports properties, using the specified context.

GetStandardValues()

Vrátí kolekci standardních hodnot z výchozího kontextu pro datový typ, pro který je tento konvertor typu určen.Returns a collection of standard values from the default context for the data type this type converter is designed for.

GetStandardValues(ITypeDescriptorContext)

Vrátí kolekci standardních hodnot pro datový typ, pro který je tento konvertor typu určen, pokud je k dispozici v kontextu formátu.Returns a collection of standard values for the data type this type converter is designed for when provided with a format context.

GetStandardValuesExclusive()

Vrátí, zda kolekce standardních hodnot vracených z GetStandardValues() je exkluzivní seznam.Returns whether the collection of standard values returned from GetStandardValues() is an exclusive list.

GetStandardValuesExclusive(ITypeDescriptorContext)

Vrátí, zda kolekce standardních hodnot vracených z GetStandardValues() je exkluzivní seznam možných hodnot pomocí zadaného kontextu.Returns whether the collection of standard values returned from GetStandardValues() is an exclusive list of possible values, using the specified context.

GetStandardValuesSupported()

Vrátí, zda tento objekt podporuje standardní sadu hodnot, které lze vybrat ze seznamu.Returns whether this object supports a standard set of values that can be picked from a list.

GetStandardValuesSupported(ITypeDescriptorContext)

Vrátí, zda tento objekt podporuje standardní sadu hodnot, které mohou být vydány ze seznamu pomocí zadaného kontextu.Returns whether this object supports a standard set of values that can be picked from a list, using the specified context.

GetType()

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

(Zděděno od Object)
IsValid(ITypeDescriptorContext, Object)

Vrátí, zda je daný objekt Value platný pro tento typ a pro zadaný kontext.Returns whether the given value object is valid for this type and for the specified context.

IsValid(Object)

Vrátí, zda je daný objekt Value pro tento typ platný.Returns whether the given value object is valid for this type.

MemberwiseClone()

Vytvoří kopii aktuálního Objectbez podstruktury.Creates a shallow copy of the current Object.

(Zděděno od Object)
SortProperties(PropertyDescriptorCollection, String[])

Seřadí kolekci vlastností.Sorts a collection of properties.

ToString()

Vrací řetězec, který představuje aktuální objekt.Returns a string that represents the current object.

(Zděděno od Object)

Platí pro

Viz také