Udostępnij za pośrednictwem


TypeConverterAttribute Klasa

Definicja

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
TypeConverterAttribute
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 MyClassprogram .

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)

Dotyczy

Zobacz też