TypeConverter Sınıf

Tanım

Değer türlerini diğer türlere dönüştürmenin yanı sıra standart değerlere ve alt özelliklere erişmek için birleşik bir yol sağlar.

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
Devralma
TypeConverter
Türetilmiş
Öznitelikler

Örnekler

Aşağıdaki kod örneği, bir tür dönüştürücü örneğinin nasıl oluşturulacağını ve bir sınıfa nasıl bağlanacağını gösterir. dönüştürücüsü uygulayan sınıfın sınıfından MyClassConverterdevralması TypeConverter gerekir.

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

Sabit listesi olan bir özelliğiniz olduğunda, özelliği ayarlamadan önce bir numaralandırma değerinin geçerli olup olmadığını denetleyin. Sonraki kod örneği, adlı MyPropertyEnum bir numaralandırmanın bildirilmiş olmasını gerektirir.

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

Başka bir yaygın tür dönüştürücü kullanımı, bir nesneyi dizeye dönüştürmektir. Aşağıdaki kod örneği, değişkeninde cdepolanan öğesinin Color adını yazdırır.

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

Bir değeri bir sonraki kod örneğinde gösterildiği gibi adından dönüştürmek için tür dönüştürücüsü de kullanabilirsiniz.

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)

Aşağıdaki kod örneğinde, nesnenin desteklediği standart değerler kümesini yazdırmak için tür dönüştürücüsü kullanabilirsiniz.

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

Açıklamalar

En yaygın dönüştürücü türü, metin gösterimine ve metin gösterimine dönüştüren türdür. Sınıfın tür dönüştürücüsü ile TypeConverterAttributesınıfına bağlıdır. Bu öznitelik geçersiz kılınmadıkça, bu sınıftan devralan tüm sınıflar temel sınıfla aynı tür dönüştürücüsü kullanır.

Not

Genel tür sistemi amacıyla, bir tür dönüştürücüye doğrudan erişmeyin. Bunun yerine, kullanarak TypeDescriptoruygun dönüştürücüye erişin. Daha fazla bilgi için sağlanan kod örneklerine bakın.

Ancak, XAML kullanırken, bir XAML işlemcisi üzerinden TypeDescriptorgeçmek yerine doğrudan öğesini ararTypeConverterAttribute. Koddan örnek TypeDescriptor istediğiniz veya WPF kaynaklarında paylaşılan bir örnek oluşturduğunuz durumlar için, doğrudan başvurmadan TypeDescriptor veya başka bir yansıma ve tür sistemi desteği olmadan oluşturulması kabul edilebilir.

öğesinden TypeConverter türetilen sınıflara genellikle bir XAML işlemcisinin işaretlemeden bir özniteliği veya başlatma metin değerini dönüştürmesinin (doğası gereği bir dizedir) ve çalışma zamanı gösterimi için bir nesne oluşturmasının bir parçası olarak başvurulur. XAML için tür dönüştürme davranışını desteklemeyi planlayan özel tür yazarları genellikle bir dizeden kendi benzersiz ConvertFrom davranışlarını destekleyen bir TypeConverter sınıf uygular. Bu davranış, XAML öznitelik değeri olarak sağlanan dizeden tür dönüştürmeyi etkinleştirir ve nesnenin ayrıştırılmış nesne grafında oluşturulabilmesi için dizeden nesne oluşturmak için gereken desteği sağlayan bir XAML işlemcisi sağlar. Özel türler veya özel türlerin üyeleri tanımlara uygulanarak TypeConverterAttribute belirtilir ve özniteliği özel TypeConverter uygulamaya başvurur. Daha fazla bilgi için bkz. XAML için Tür Dönüştürücülerine Genel Bakış.

Devralanlara Notlar

Kendi dönüştürme gereksinimlerinizi uygulamak için öğesini TypeConverter devralın. Bu sınıftan devraldığınızda, aşağıdaki yöntemleri geçersiz kılabilirsiniz:

Not: Türetilmiş türünüz veya privateolarak internal işaretlenebilir, ancak sınıfıyla TypeDescriptor türünüzün bir örneği oluşturulabilir. Çağıranın güvenilir olduğunu varsayarak güvenli olmayan kod yazmayın. Bunun yerine çağıranların kısmi güven içinde türünüzün örneklerini oluşturabileceğini varsayalım.

Genel (XAML olmayan) amaçlarla tür dönüştürücüleri hakkında daha fazla bilgi için bkz . Nasıl yapılır: Tür Dönüştürücüsü Uygulama veya Genelleştirilmiş Tür Dönüştürme.

Oluşturucular

TypeConverter()

TypeConverter sınıfının yeni bir örneğini başlatır.

Yöntemler

CanConvertFrom(ITypeDescriptorContext, Type)

Bu dönüştürücü, belirtilen bağlamı kullanarak verilen türdeki bir nesneyi bu dönüştürücü türüne dönüştürebilir mi döndürür.

CanConvertFrom(Type)

Bu dönüştürücüün verilen türdeki bir nesneyi bu dönüştürücü türüne dönüştürip dönüştüremeyeceğini döndürür.

CanConvertTo(ITypeDescriptorContext, Type)

Bu dönüştürücü, belirtilen bağlamı kullanarak nesneyi belirtilen türe dönüştürebilir mi döndürür.

CanConvertTo(Type)

Bu dönüştürücüün nesneyi belirtilen türe dönüştürip dönüştüremeyeceğini döndürür.

ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)

Belirtilen bağlam ve kültür bilgilerini kullanarak verilen nesneyi bu dönüştürücü türüne dönüştürür.

ConvertFrom(Object)

Verilen değeri bu dönüştürücü türüne dönüştürür.

ConvertFromInvariantString(ITypeDescriptorContext, String)

Sabit kültürü ve belirtilen bağlamı kullanarak verilen dizeyi bu dönüştürücü türüne dönüştürür.

ConvertFromInvariantString(String)

Sabit kültürü kullanarak verilen dizeyi bu dönüştürücü türüne dönüştürür.

ConvertFromString(ITypeDescriptorContext, CultureInfo, String)

Belirtilen bağlam ve kültür bilgilerini kullanarak verilen metni bir nesneye dönüştürür.

ConvertFromString(ITypeDescriptorContext, String)

Belirtilen bağlamı kullanarak verilen metni bir nesneye dönüştürür.

ConvertFromString(String)

Belirtilen metni bir nesneye dönüştürür.

ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type)

Belirtilen bağlam ve kültür bilgilerini kullanarak verilen değer nesnesini belirtilen türe dönüştürür.

ConvertTo(Object, Type)

Bağımsız değişkenleri kullanarak verilen değer nesnesini belirtilen türe dönüştürür.

ConvertToInvariantString(ITypeDescriptorContext, Object)

Belirtilen bağlamı kullanarak belirtilen değeri kültür sabiti dize gösterimine dönüştürür.

ConvertToInvariantString(Object)

Belirtilen değeri kültür sabiti dize gösterimine dönüştürür.

ConvertToString(ITypeDescriptorContext, CultureInfo, Object)

Belirtilen bağlam ve kültür bilgilerini kullanarak verilen değeri dize gösterimine dönüştürür.

ConvertToString(ITypeDescriptorContext, Object)

Verilen bağlamı kullanarak verilen değeri bir dize gösterimine dönüştürür.

ConvertToString(Object)

Belirtilen değeri dize gösterimine dönüştürür.

CreateInstance(IDictionary)

Nesne için belirli bir Object özellik değerleri kümesini yeniden oluşturur.

CreateInstance(ITypeDescriptorContext, IDictionary)

Nesne için bir özellik değerleri kümesi verildiğinde, belirtilen bağlamı kullanarak bunun TypeConverter ilişkili olduğu türün bir örneğini oluşturur.

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetConvertFromException(Object)

Dönüştürme gerçekleştirilemediğinde oluşturulacak bir özel durum döndürür.

GetConvertToException(Object, Type)

Dönüştürme gerçekleştirilemediğinde oluşturulacak bir özel durum döndürür.

GetCreateInstanceSupported()

Bu nesnedeki bir değeri değiştirmenin yeni bir değer oluşturmak için yöntemine CreateInstance(IDictionary) bir çağrı gerekip gerekmediğini döndürür.

GetCreateInstanceSupported(ITypeDescriptorContext)

Bu nesnedeki bir değeri değiştirmenin, belirtilen bağlamı kullanarak yeni bir değer oluşturmak için CreateInstance(IDictionary) çağrısı gerekip gerekmediğini döndürür.

GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetProperties(ITypeDescriptorContext, Object)

Belirtilen bağlamı kullanarak değer parametresi tarafından belirtilen dizi türü için bir özellik koleksiyonu döndürür.

GetProperties(ITypeDescriptorContext, Object, Attribute[])

Belirtilen bağlamı ve öznitelikleri kullanarak değer parametresi tarafından belirtilen dizi türü için bir özellik koleksiyonu döndürür.

GetProperties(Object)

değer parametresi tarafından belirtilen dizi türü için bir özellik koleksiyonu döndürür.

GetPropertiesSupported()

Bu nesnenin özellikleri destekleyip desteklemediğini döndürür.

GetPropertiesSupported(ITypeDescriptorContext)

Belirtilen bağlamı kullanarak bu nesnenin özellikleri destekleyip desteklemediğini döndürür.

GetStandardValues()

Bu tür dönüştürücüsünün tasarlandığı veri türü için varsayılan bağlamdan bir standart değerler koleksiyonu döndürür.

GetStandardValues(ITypeDescriptorContext)

Bu tür dönüştürücü bir biçim bağlamı sağlandığında için tasarlanan veri türü için standart değerlerden oluşan bir koleksiyon döndürür.

GetStandardValuesExclusive()

'den GetStandardValues() döndürülen standart değerler koleksiyonunun özel kullanım listesi olup olmadığını döndürür.

GetStandardValuesExclusive(ITypeDescriptorContext)

belirtilen bağlamı kullanarak, döndürülen GetStandardValues() standart değerler koleksiyonunun olası değerlerin özel bir listesi olup olmadığını döndürür.

GetStandardValuesSupported()

Bu nesnenin bir listeden seçilebilen standart bir değer kümesini destekleyip desteklemediğini döndürür.

GetStandardValuesSupported(ITypeDescriptorContext)

Bu nesnenin, belirtilen bağlam kullanılarak bir listeden seçilebilen standart bir değer kümesini destekleyip desteklemediğini döndürür.

GetType()

Type Geçerli örneğini alır.

(Devralındığı yer: Object)
IsValid(ITypeDescriptorContext, Object)

Verilen değer nesnesinin bu tür ve belirtilen bağlam için geçerli olup olmadığını döndürür.

IsValid(Object)

Verilen değer nesnesinin bu tür için geçerli olup olmadığını döndürür.

MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
SortProperties(PropertyDescriptorCollection, String[])

Bir özellik koleksiyonunu sıralar.

ToString()

Geçerli nesneyi temsil eden dizeyi döndürür.

(Devralındığı yer: Object)

Şunlara uygulanır

Ayrıca bkz.