TypeConverter Klas

Definitie

Biedt een uniforme manier om typen waarden te converteren naar andere typen, evenals voor toegang tot standaardwaarden en subproperties.

public ref class TypeConverter
[System.Runtime.InteropServices.ComVisible(true)]
public class TypeConverter
public class TypeConverter
[<System.Runtime.InteropServices.ComVisible(true)>]
type TypeConverter = class
type TypeConverter = class
Public Class TypeConverter
Overname
TypeConverter
Afgeleid
Kenmerken

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u een exemplaar van een typeconversieprogramma maakt en deze koppelt aan een klasse. De klasse die het conversieprogramma implementeert, MyClassConvertermoet overnemen van de TypeConverter klasse.

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

Wanneer u een eigenschap hebt met een opsomming, controleert u of een opsommingswaarde geldig is voordat u de eigenschap instelt. Het volgende codevoorbeeld vereist dat een aangeroepen MyPropertyEnum opsomming is gedeclareerd.

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

Een ander gangbaar conversieprogrammagebruik is het converteren van een object naar een tekenreeks. In het volgende codevoorbeeld wordt de naam van de Color opgeslagen in de variabele cafgedrukt.

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))

U kunt ook een typeconversieprogramma gebruiken om een waarde te converteren van de naam, zoals wordt weergegeven in het volgende codevoorbeeld.

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)

In het volgende codevoorbeeld kunt u een typeconversieprogramma gebruiken om de set standaardwaarden af te drukken die door het object worden ondersteund.

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

Opmerkingen

Het meest voorkomende type converter is er een die converteert naar en van een tekstweergave. Het typeconversieprogramma voor een klasse is gebonden aan de klasse met een TypeConverterAttribute. Tenzij dit kenmerk wordt overschreven, gebruiken alle klassen die overnemen van deze klasse hetzelfde typeconversieprogramma als de basisklasse.

Note

Voor algemene typesysteemdoeleinden hebt u geen rechtstreeks toegang tot een typeconversieprogramma. Open in plaats daarvan het juiste conversieprogramma met behulp van TypeDescriptor. Zie de codevoorbeelden voor meer informatie.

Wanneer u echter XAML gebruikt, zoekt een XAML-processor rechtstreeks naar de TypeConverterAttribute processor, in plaats van door TypeDescriptorte gaan. Voor gevallen waarin u een TypeDescriptor-exemplaar van code wilt maken of wanneer u een gedeeld exemplaar maakt in WPF resources, is het acceptabel om deze rechtstreeks te maken zonder te verwijzen naar TypeDescriptor of andere systeemondersteuning voor weerspiegeling en type.

Klassen die zijn afgeleid van TypeConverter , worden vaak verwezen als onderdeel van de manier waarop een XAML-processor een kenmerk of initialisatietekstwaarde converteert uit markeringen (die inherent een tekenreeks is) en een object genereert voor een runtime-weergave. Auteurs van aangepaste typen die een typeconversiegedrag voor XAML willen ondersteunen, implementeren doorgaans een TypeConverter klasse die hun eigen unieke ConvertFrom gedrag van een tekenreeks ondersteunt. Dit gedrag maakt het mogelijk om typeconversie uit de tekenreeks die is opgegeven als een XAML-kenmerkwaarde en biedt een XAML-processor met de ondersteuning die nodig is om een object te maken op basis van de tekenreeks, zodat het object kan worden geproduceerd in een geparseerde objectgrafiek. Aangepaste typen of leden van aangepaste typen worden aangegeven door toe te passen op TypeConverterAttribute de definities, waarbij het kenmerk verwijst naar de aangepaste TypeConverter implementatie. Zie Type conversieprogramma's voor XAML-overzicht voor meer informatie.

Notities voor overnemers

Overnemen van TypeConverter om uw eigen conversievereisten te implementeren. Wanneer u deze klasse overschrijft, kunt u de volgende methoden overschrijven:

Opmerking: uw afgeleide type kan worden gemarkeerd als internal of private, maar er kan een exemplaar van uw type worden gemaakt met de TypeDescriptor klasse. Schrijf geen onveilige code door ervan uit te gaan dat de aanroeper wordt vertrouwd. Stel dat bellers exemplaren van uw type in gedeeltelijke vertrouwensrelatie kunnen maken.

Voor meer informatie over typeconversieprogramma's voor algemene (niet-XAML)-doeleinden, zie How to: Implement a Type Converter or Generalized Type Conversion.

Constructors

Name Description
TypeConverter()

Initialiseert een nieuw exemplaar van de TypeConverter klasse.

Methoden

Name Description
CanConvertFrom(ITypeDescriptorContext, Type)

Retourneert of dit conversieprogramma een object van het opgegeven type kan converteren naar het type van dit conversieprogramma, met behulp van de opgegeven context.

CanConvertFrom(Type)

Retourneert of dit conversieprogramma een object van het opgegeven type kan converteren naar het type van dit conversieprogramma.

CanConvertTo(ITypeDescriptorContext, Type)

Retourneert of dit conversieprogramma het object kan converteren naar het opgegeven type, met behulp van de opgegeven context.

CanConvertTo(Type)

Retourneert of dit conversieprogramma het object kan converteren naar het opgegeven type.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Converteert het opgegeven object naar het type van dit conversieprogramma, met behulp van de opgegeven context- en cultuurinformatie.

ConvertFrom(Object)

Converteert de opgegeven waarde naar het type van dit conversieprogramma.

ConvertFromInvariantString(ITypeDescriptorContext, String)

Converteert de opgegeven tekenreeks naar het type van dit conversieprogramma, met behulp van de invariante cultuur en de opgegeven context.

ConvertFromInvariantString(String)

Converteert de opgegeven tekenreeks naar het type van dit conversieprogramma, met behulp van de invariante cultuur.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Converteert de opgegeven tekst naar een object met behulp van de opgegeven context- en cultuurgegevens.

ConvertFromString(ITypeDescriptorContext, String)

Converteert de opgegeven tekst naar een object met behulp van de opgegeven context.

ConvertFromString(String)

Converteert de opgegeven tekst naar een object.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Converteert het opgegeven waardeobject naar het opgegeven type, met behulp van de opgegeven context- en cultuurgegevens.

ConvertTo(Object, Type)

Converteert het opgegeven waardeobject naar het opgegeven type met behulp van de argumenten.

ConvertToInvariantString(ITypeDescriptorContext, Object)

Converteert de opgegeven waarde naar een cultuur-invariante tekenreeksweergave, met behulp van de opgegeven context.

ConvertToInvariantString(Object)

Converteert de opgegeven waarde naar een cultuur-invariante tekenreeksweergave.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Converteert de opgegeven waarde naar een tekenreeksweergave met behulp van de opgegeven context- en cultuurgegevens.

ConvertToString(ITypeDescriptorContext, Object)

Converteert de opgegeven waarde naar een tekenreeksweergave met behulp van de opgegeven context.

ConvertToString(Object)

Converteert de opgegeven waarde naar een tekenreeksweergave.

CreateInstance(IDictionary)

Hiermee maakt u een Object bepaalde set eigenschapswaarden voor het object opnieuw.

CreateInstance(ITypeDescriptorContext, IDictionary)

Hiermee maakt u een exemplaar van het type waaraan dit TypeConverter is gekoppeld, met behulp van de opgegeven context, op basis van een set eigenschapswaarden voor het object.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetConvertFromException(Object)

Retourneert een uitzondering die moet worden gegenereerd wanneer een conversie niet kan worden uitgevoerd.

GetConvertToException(Object, Type)

Retourneert een uitzondering die moet worden gegenereerd wanneer een conversie niet kan worden uitgevoerd.

GetCreateInstanceSupported()

Retourneert of het wijzigen van een waarde voor dit object een aanroep naar de CreateInstance(IDictionary) methode vereist om een nieuwe waarde te maken.

GetCreateInstanceSupported(ITypeDescriptorContext)

Retourneert of het wijzigen van een waarde voor dit object een aanroep vereist om een nieuwe waarde te CreateInstance(IDictionary) maken met behulp van de opgegeven context.

GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetProperties(ITypeDescriptorContext, Object, Attribute[])

Retourneert een verzameling eigenschappen voor het type matrix dat is opgegeven door de waardeparameter, met behulp van de opgegeven context en kenmerken.

GetProperties(ITypeDescriptorContext, Object)

Retourneert een verzameling eigenschappen voor het type matrix dat is opgegeven door de waardeparameter, met behulp van de opgegeven context.

GetProperties(Object)

Retourneert een verzameling eigenschappen voor het type matrix dat is opgegeven door de waardeparameter.

GetPropertiesSupported()

Retourneert of dit object eigenschappen ondersteunt.

GetPropertiesSupported(ITypeDescriptorContext)

Retourneert of dit object eigenschappen ondersteunt, met behulp van de opgegeven context.

GetStandardValues()

Retourneert een verzameling standaardwaarden uit de standaardcontext voor het gegevenstype waarvoor dit type conversieprogramma is ontworpen.

GetStandardValues(ITypeDescriptorContext)

Retourneert een verzameling standaardwaarden voor het gegevenstype waarvoor dit type conversieprogramma is ontworpen wanneer deze wordt geleverd met een indelingscontext.

GetStandardValuesExclusive()

Retourneert of de verzameling standaardwaarden waaruit wordt geretourneerd GetStandardValues() een exclusieve lijst is.

GetStandardValuesExclusive(ITypeDescriptorContext)

Retourneert of de verzameling standaardwaarden waaruit wordt geretourneerd GetStandardValues() een exclusieve lijst met mogelijke waarden is, met behulp van de opgegeven context.

GetStandardValuesSupported()

Retourneert of dit object een standaardset waarden ondersteunt die uit een lijst kunnen worden gekozen.

GetStandardValuesSupported(ITypeDescriptorContext)

Retourneert of dit object een standaardset waarden ondersteunt die uit een lijst kunnen worden gekozen, met behulp van de opgegeven context.

GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
IsValid(ITypeDescriptorContext, Object)

Retourneert of het opgegeven waardeobject geldig is voor dit type en voor de opgegeven context.

IsValid(Object)

Retourneert of het opgegeven waardeobject geldig is voor dit type.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
SortProperties(PropertyDescriptorCollection, String[])

Hiermee sorteert u een verzameling eigenschappen.

ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)

Van toepassing op

Zie ook