TypeConverterAttribute Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa typ, który ma być używany jako konwerter dla obiektu, do którego ten atrybut jest powiązany.
public ref class TypeConverterAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public sealed class TypeConverterAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.All)>]
type TypeConverterAttribute = class
inherit Attribute
Public NotInheritable Class TypeConverterAttribute
Inherits Attribute
- Dziedziczenie
- Atrybuty
Przykłady
Poniższy przykład deklaruje MyClass
użycie konwertera typów o nazwie MyClassConverter
. W tym przykładzie przyjęto założenie, że MyClassConverter
zostało zaimplementowane w innym miejscu. Klasa implementowania konwertera (MyClassConverter
) musi dziedziczyć z TypeConverter klasy.
[TypeConverter(Class1::MyClassConverter::typeid)]
ref class MyClass{
// Insert code here.
};
[TypeConverter(typeof(MyClassConverter))]
public class MyClass {
// Insert code here.
}
<TypeConverter(GetType(MyClassConverter))> _
Public Class ClassA
' Insert code here.
End Class
W następnym przykładzie zostanie utworzone wystąpienie klasy MyClass
. Następnie pobiera atrybuty klasy i wyświetla nazwę konwertera typów używanego przez MyClass
program .
int main()
{
// Creates a new instance of MyClass.
Class1::MyClass^ myNewClass = gcnew Class1::MyClass;
// Gets the attributes for the instance.
AttributeCollection^ attributes = TypeDescriptor::GetAttributes( myNewClass );
/* Prints the name of the type converter by retrieving the
* TypeConverterAttribute from the AttributeCollection. */
TypeConverterAttribute^ myAttribute = dynamic_cast<TypeConverterAttribute^>(attributes[ TypeConverterAttribute::typeid ]);
Console::WriteLine( "The type converter for this class is: {0}", myAttribute->ConverterTypeName );
return 0;
}
public static int Main() {
// Creates a new instance of MyClass.
MyClass myNewClass = new MyClass();
// Gets the attributes for the instance.
AttributeCollection attributes = TypeDescriptor.GetAttributes(myNewClass);
/* Prints the name of the type converter by retrieving the
* TypeConverterAttribute from the AttributeCollection. */
TypeConverterAttribute myAttribute =
(TypeConverterAttribute)attributes[typeof(TypeConverterAttribute)];
Console.WriteLine("The type conveter for this class is: " +
myAttribute.ConverterTypeName);
return 0;
}
Public Shared Function Main() As Integer
' Creates a new instance of ClassA.
Dim myNewClass As New ClassA()
' Gets the attributes for the instance.
Dim attributes As AttributeCollection = TypeDescriptor.GetAttributes(myNewClass)
' Prints the name of the type converter by retrieving the
' TypeConverterAttribute from the AttributeCollection.
Dim myAttribute As TypeConverterAttribute = _
CType(attributes(GetType(TypeConverterAttribute)), TypeConverterAttribute)
Console.WriteLine(("The type conveter for this class is: " _
+ myAttribute.ConverterTypeName))
Return 0
End Function 'Main
Uwagi
Klasa używana do konwersji musi dziedziczyć z klasy TypeConverter. ConverterTypeName Użyj właściwości , aby uzyskać nazwę klasy, która zapewnia konwersję danych dla obiektu, z którego jest powiązany ten atrybut.
Aby uzyskać więcej informacji na temat atrybutów, zobacz Atrybuty. Aby uzyskać więcej informacji na temat konwerterów typów, zobacz klasę TypeConverter bazową i Instrukcje: Implementowanie konwertera typów.
Aby ustanowić konwerter typów w klasie niestandardowej, która zapewnia zachowanie konwersji typów dla języka XAML, należy zastosować TypeConverterAttribute atrybut do typu. Argument atrybutu odwołuje się do implementacji konwertera typów. Konwerter typów powinien mieć możliwość akceptowania wartości z ciągu używanego dla atrybutów lub tekstu inicjowania w znacznikach XAML i konwertowania tego ciągu na zamierzony typ docelowy. Aby uzyskać więcej informacji, zobacz TypeConverters i XAML.
Zamiast stosować do wszystkich wartości typu, można również ustanowić zachowanie konwertera typów dla języka XAML dla określonej właściwości. W tym przypadku stosuje się definicję TypeConverterAttribute właściwości (definicję zewnętrzną, a nie definicje specyficzne get
i set
).
Zachowanie konwertera typów dla użycia XAML niestandardowego elementu członkowskiego dołączanego można przypisać, stosując TypeConverterAttribute metodę get
dostępu, która obsługuje użycie XAML. Aby uzyskać więcej informacji, zobacz Omówienie właściwości dołączonych.
W przypadku złożonych przypadków serializacji XAML, które wymagają dodatkowego stanu w środowisku uruchomieniowym obiektu, rozważ zdefiniowanie serializatora wartości oprócz konwertera typów i atrybutów obu klas obsługi dla typów niestandardowych lub niestandardowych elementów członkowskich. Aby uzyskać więcej informacji, zobacz ValueSerializer.
Konstruktory
TypeConverterAttribute() |
Inicjuje nowe wystąpienie TypeConverterAttribute klasy z domyślnym konwerterem typów, który jest pustym ciągiem (""). |
TypeConverterAttribute(String) |
Inicjuje TypeConverterAttribute nowe wystąpienie klasy przy użyciu określonej nazwy typu jako konwertera danych dla obiektu, z jakim jest powiązany ten atrybut. |
TypeConverterAttribute(Type) |
Inicjuje nowe wystąpienie TypeConverterAttribute klasy, używając określonego typu jako konwertera danych dla obiektu, z jakim jest powiązany ten atrybut. |
Pola
Default |
Określa typ, który ma być używany jako konwerter dla obiektu ten atrybut jest powiązany. |
Właściwości
ConverterTypeName |
Pobiera w pełni kwalifikowaną nazwę Type typu , która ma być używana jako konwerter dla obiektu, z jakim jest powiązany ten atrybut. |
TypeId |
Po zaimplementowaniu w klasie pochodnej pobiera unikatowy identyfikator dla tego Attributeelementu . (Odziedziczone po Attribute) |
Metody
Equals(Object) |
Zwraca, czy wartość danego obiektu jest równa bieżącej TypeConverterAttributewartości . |
GetHashCode() |
Zwraca wartość skrótu dla tego wystąpienia. |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsDefaultAttribute() |
Podczas zastępowania w klasie pochodnej wskazuje, czy wartość tego wystąpienia jest wartością domyślną dla klasy pochodnej. (Odziedziczone po Attribute) |
Match(Object) |
Po przesłonięciu w klasie pochodnej zwraca wartość wskazującą, czy to wystąpienie jest równe określonemu obiektowi. (Odziedziczone po Attribute) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Zestaw nazw jest mapowany na odpowiedni zestaw identyfikatorów wysyłania. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Pobiera informacje o typie dla obiektu, który może służyć do pobierania informacji o typie dla interfejsu. (Odziedziczone po Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Pobiera informację o liczbie typów interfejsów, jakie zawiera obiekt (0 lub 1). (Odziedziczone po Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Umożliwia dostęp do właściwości i metod udostępnianych przez obiekt. (Odziedziczone po Attribute) |