TypeConverter Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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, tür dönüştürücüsünün bir ö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ı, MyClassConverter
sınıfından TypeConverter devralmalıdır.
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
Bir diğer 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 c
depolanan öğ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 sonraki kod örneğinde gösterildiği gibi, bir değeri 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österiminden dönüştüren türdür. Bir 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ığı sürece, 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 bir TypeDescriptor örnek istediğiniz veya WPF kaynaklarında paylaşılan bir örnek oluşturduğunuz durumlarda, doğrudan başvurmadan veya başka bir yansıma ve tür sistemi desteğine başvurmadan TypeDescriptor oluşturmak kabul edilebilir.
öğesinden TypeConverter türetilen sınıflara genellikle bir XAML işlemcisinin işaretlemeden (doğal olarak bir dizedir) bir öznitelik veya başlatma metin değerini dönüştürmesinin 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ı desteklemek isteyen ö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:
Özel tür dönüştürmeyi CanConvertFrom(ITypeDescriptorContext, Type)desteklemek için , CanConvertTo(ITypeDescriptorContext, Type), ConvertFrom(ITypeDescriptorContext, CultureInfo, Object)ve ConvertTo(ITypeDescriptorContext, CultureInfo, Object, Type) yöntemlerini geçersiz kılın.
Değerini değiştirmek üzere nesneyi yeniden oluşturması gereken türleri dönüştürmek için ve GetCreateInstanceSupported(ITypeDescriptorContext) yöntemlerini geçersiz kılınCreateInstance(ITypeDescriptorContext, IDictionary).
Özellikleri destekleyen türleri dönüştürmek için ve GetPropertiesSupported(ITypeDescriptorContext) yöntemlerini geçersiz kılınGetProperties(ITypeDescriptorContext, Object, Attribute[]). Dönüştürdüğünüz sınıfın özellikleri yoksa ve özellikleri uygulamanız gerekiyorsa, özellik tanımlayıcılarını uygulamak için sınıfını temel olarak kullanabilirsiniz TypeConverter.SimplePropertyDescriptor . 'den TypeConverter.SimplePropertyDescriptordevraldığınızda ve SetValue(Object, Object) yöntemlerini geçersiz kılmanız GetValue(Object) gerekir.
Standart değerleri destekleyen türleri dönüştürmek için , GetStandardValuesExclusive(ITypeDescriptorContext)GetStandardValuesSupported(ITypeDescriptorContext) ve IsValid(ITypeDescriptorContext, Object) yöntemlerini geçersiz kılınGetStandardValues(ITypeDescriptorContext).
Not: Türetilmiş türünüz veya private
olarak 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ü veya Genelleştirilmiş Tür Dönüştürmesi Uygulama.
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ü, verilen türdeki bir nesneyi bu dönüştürücü türüne dönüştürebilir mi 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ünin 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 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ı ile birlikte sağlandığında için tasarlandığı veri türü için standart değerlerden oluşan bir koleksiyon döndürür. |
GetStandardValuesExclusive() |
döndürülen standart değerler GetStandardValues() 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ğerlerin 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.
- TypeConverterAttribute
- PropertyDescriptorCollection
- TypeConverter.SimplePropertyDescriptor
- TypeConverter.StandardValuesCollection
- XAML için tür dönüştürücülerine genel bakış
- Özel türler ve kitaplıklar için XAML ile ilgili CLR öznitelikleri
- .NET XAML Hizmetleri ile kullanmak üzere özel türler tanımlama
- NET XAML Hizmetleri Kavramsal Belgeleri