TypeConverter Osztály

Definíció

Egységes módot biztosít az értéktípusok más típusúvá alakítására, valamint a standard értékek és altulajdonságok elérésére.

public ref class TypeConverter
public class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
type TypeConverter = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeConverter = class
Public Class TypeConverter
Öröklődés
TypeConverter
Származtatott
Attribútumok

Példák

Az alábbi példakód bemutatja, hogyan hozhat létre egy típuskonverter-példányt, és hogyan kötheti azt egy osztályhoz. A konvertert MyClassConvertermegvalósító osztálynak örökölnie kell az TypeConverter osztálytól.

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

Ha enumerálással rendelkező tulajdonsága van, a tulajdonság beállítása előtt ellenőrizze, hogy érvényes-e az enumerálási érték. A következő kód példája megköveteli, hogy a rendszer MyPropertyEnum deklarált egy enumerálást.

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($"{nameof(MyProperty)} is not valid");
        }
        // 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

Egy másik gyakori típuskonverter-használat az objektum sztringgé alakítása. Az alábbi példakód kiírja a változóban Colortárolt név nevétc.

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

A típuskonverterrel is átalakíthat egy értéket a nevéből, ahogy az a következő kód példájában is látható.

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

Az alábbi kód példában egy típuskonverterrel kinyomtathatja az objektum által támogatott szabványos értékek készletét.

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

Megjegyzések

A konverter leggyakoribb típusa az, amely szöveges ábrázolássá és abból vissza konvertál. A típuskonverter az osztályhoz egy TypeConverterAttributesegítségével van kötve. Ha nincs felülírva ez az attribútum, az ebből az osztályból öröklő összes osztály ugyanazt a típuskonvertert használja, mint az alaposztály.

Note

Általános típusrendszer-célokból ne érje el közvetlenül a típuskonvertert. Ehelyett a megfelelő konvertert a következővel TypeDescriptorérheti el: . További információkért tekintse meg a megadott példakódokat.

Az XAML használata esetén azonban az XAML-processzor a közvetlen keresés helyett TypeConverterAttributea TypeDescriptor közvetlent keresi. Azokban az esetekben, amikor TypeDescriptor példányt szeretne kódból, vagy ha megosztott példányt hoz létre WPF erőforrásokban, akkor elfogadható, ha közvetlenül hozza létre anélkül, hogy hivatkozna TypeDescriptor vagy más tükrözési és típusrendszer-támogatásra.

A származtatott TypeConverter osztályokra gyakran hivatkoznak annak részeként, hogy egy XAML-processzor hogyan konvertál egy attribútumot vagy inicializálási szöveges értéket a korrektúra (amely eredendően egy sztring), és létrehoz egy objektumot egy futásidejű ábrázoláshoz. Az XAML típuskonvertálási viselkedését támogató egyéni típusszerzők általában olyan osztályt TypeConverter implementálnak, amely támogatja a sztringek saját egyedi ConvertFrom viselkedését. Ez a viselkedés lehetővé teszi a típusátalakítást az XAML attribútumértékként megadott sztringből, és egy XAML-processzort biztosít a sztringből létrehozott objektum létrehozásához szükséges támogatással, hogy az objektum létrehozható legyen egy elemzett objektumgráfban. Az egyéni típusok vagy egyéni típusok tagjai a definíciókra való alkalmazással TypeConverterAttribute jelennek meg, és az attribútum az egyéni TypeConverter implementációra hivatkozik. További információ: Típuskonverterek az XAML-hez – áttekintés.

Megjegyzések az öröklőkhöz

Örökölhet saját TypeConverter konverziós követelményeket. Ha ebből az osztályból örököl, felülbírálhatja a következő metódusokat:

Megjegyzés: Lehetséges, hogy a származtatott típust megjelöli vagy internaljelöliprivate, de a típus egy példánya létrehozható az TypeDescriptor osztálysal. Ne írjon nem biztonságos kódot, ha feltételezi, hogy a hívó megbízható. Tegyük fel, hogy a hívók részleges megbízhatósági kapcsolaton belül hozhatnak létre ön típusú példányokat.

Az általános (nem XAML) típusú típuskonverterekkel kapcsolatos további információkért lásd: Típuskonverter vagy általánosított típuskonverter implementálása.

Konstruktorok

Name Description
TypeConverter()

Inicializálja a TypeConverter osztály új példányát.

Metódusok

Name Description
CanConvertFrom(ITypeDescriptorContext, Type)

Azt adja vissza, hogy ez a konverter képes-e az adott típusú objektumot ennek a konverternek a típusára konvertálni a megadott környezet használatával.

CanConvertFrom(Type)

Azt adja vissza, hogy ez a konverter képes-e átalakítani egy adott típusú objektumot ennek a konverternek a típusára.

CanConvertTo(ITypeDescriptorContext, Type)

Azt adja vissza, hogy ez a konverter képes-e átalakítani az objektumot a megadott típusra a megadott környezet használatával.

CanConvertTo(Type)

Azt adja vissza, hogy ez a konverter képes-e átalakítani az objektumot a megadott típusra.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Az adott objektumot a konverter típusává alakítja a megadott környezet- és kulturális információk használatával.

ConvertFrom(Object)

A megadott értéket átalakítja ennek a konverternek a típusára.

ConvertFromInvariantString(ITypeDescriptorContext, String)

A megadott sztringet átalakítja ennek a konverternek a típusára az invariáns kultúra és a megadott környezet használatával.

ConvertFromInvariantString(String)

Az adott sztringet átalakítja ennek a konverternek a típusára az invariáns kultúra használatával.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

A megadott szöveget objektummá alakítja a megadott környezet- és kulturális információk használatával.

ConvertFromString(ITypeDescriptorContext, String)

A megadott szöveget objektummá alakítja a megadott környezet használatával.

ConvertFromString(String)

A megadott szöveget objektummá alakítja.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

A megadott értékobjektumot a megadott típusúvá alakítja a megadott környezet- és kulturális információk használatával.

ConvertTo(Object, Type)

Az argumentumok használatával a megadott értékobjektumot a megadott típussá alakítja.

ConvertToInvariantString(ITypeDescriptorContext, Object)

A megadott értéket kulturális invariáns sztring-ábrázolássá alakítja a megadott környezet használatával.

ConvertToInvariantString(Object)

A megadott értéket kulturális invariáns sztring-ábrázolássá alakítja.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

A megadott értéket sztringábrázolássá alakítja a megadott környezet- és kulturális információk használatával.

ConvertToString(ITypeDescriptorContext, Object)

A megadott értéket sztringábrázolássá alakítja a megadott környezet használatával.

ConvertToString(Object)

A megadott értéket sztringábrázolássá alakítja.

CreateInstance(IDictionary)

Egy adott tulajdonságérték-készlet újbóli létrehozása Object az objektumhoz.

CreateInstance(ITypeDescriptorContext, IDictionary)

Létrehoz egy olyan példányt, amelyhez ez TypeConverter társítva van, a megadott környezet használatával, az objektumhoz tartozó tulajdonságértékek halmazával.

Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetConvertFromException(Object)

Kivételt ad vissza, ha a konvertálás nem hajtható végre.

GetConvertToException(Object, Type)

Kivételt ad vissza, ha a konvertálás nem hajtható végre.

GetCreateInstanceSupported()

Azt adja vissza, hogy az objektum értékének módosítása új érték létrehozásához meghívja-e a CreateInstance(IDictionary) metódust.

GetCreateInstanceSupported(ITypeDescriptorContext)

Azt adja vissza, hogy az objektum értékének módosítása új érték létrehozására CreateInstance(IDictionary) irányuló hívást igényel-e a megadott környezet használatával.

GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

Az értékparaméter által megadott tömbtípus tulajdonságainak gyűjteményét adja vissza a megadott környezet és attribútumok használatával.

GetProperties(ITypeDescriptorContext, Object)

Az értékparaméter által megadott tömbtípus tulajdonságainak gyűjteményét adja vissza a megadott környezet használatával.

GetProperties(Object)

Az értékparaméter által megadott tömbtípus tulajdonságainak gyűjteményét adja vissza.

GetPropertiesSupported()

Azt adja vissza, hogy ez az objektum támogatja-e a tulajdonságokat.

GetPropertiesSupported(ITypeDescriptorContext)

Azt adja vissza, hogy ez az objektum támogatja-e a tulajdonságokat a megadott környezet használatával.

GetStandardValues()

A szabványos értékek gyűjteményét adja vissza az alapértelmezett környezetből az ehhez a típuskonverterhez tervezett adattípushoz.

GetStandardValues(ITypeDescriptorContext)

A típuskonverter adattípusának szabványos értékeinek gyűjteményét adja vissza, ha egy formátumkörnyezetben van megadva.

GetStandardValuesExclusive()

Azt adja vissza, hogy a visszaadott GetStandardValues() standard értékek gyűjteménye kizárólagos lista-e.

GetStandardValuesExclusive(ITypeDescriptorContext)

Azt adja vissza, hogy a visszaadott GetStandardValues() standard értékek gyűjteménye a lehetséges értékek kizárólagos listája-e a megadott környezet használatával.

GetStandardValuesSupported()

Azt adja vissza, hogy ez az objektum támogatja-e a listából kiválasztható szabványos értékek készletét.

GetStandardValuesSupported(ITypeDescriptorContext)

Azt adja vissza, hogy ez az objektum támogatja-e a lista alapján kiválasztható szabványos értékek készletét a megadott környezet használatával.

GetType()

Lekéri az Type aktuális példányt.

(Öröklődés forrása Object)
IsValid(ITypeDescriptorContext, Object)

Azt adja vissza, hogy a megadott értékobjektum érvényes-e erre a típusra és a megadott környezetre.

IsValid(Object)

Azt adja vissza, hogy a megadott értékobjektum érvényes-e erre a típusra.

MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
SortProperties(PropertyDescriptorCollection, String[])

Tulajdonságok gyűjteményének rendezése.

ToString()

Az aktuális objektumot jelképező sztringet ad vissza.

(Öröklődés forrása Object)

A következőre érvényes:

Lásd még