TypeConverterAttribute Класс

Определение

Указывает, какой тип использовать в качестве преобразователя для объекта, с которым связан этот атрибут.

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
Наследование
TypeConverterAttribute
Атрибуты

Примеры

В следующем примере объявляется MyClass использование преобразователя типов с именем MyClassConverter. В этом примере предполагается, что MyClassConverter она реализована в другом месте. Класс, реализуя преобразователь (MyClassConverter), должен наследоваться от TypeConverter класса.

[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

В следующем примере создается экземпляр MyClass. Затем он получает атрибуты для класса и выводит имя преобразователя типов, используемого MyClass.

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

Комментарии

Класс, используемый для преобразования, должен наследоваться от TypeConverter. ConverterTypeName Используйте свойство, чтобы получить имя класса, предоставляющего преобразование данных для объекта, к которому привязан этот атрибут.

Дополнительные сведения об атрибутах см. в разделе Атрибуты. Дополнительные сведения о преобразователях типов см. в разделе "Базовый TypeConverter класс" и "Практическое руководство. Реализация преобразователя типов".

Чтобы установить преобразователь типов в пользовательском классе, который обеспечивает поведение преобразования типов для XAML, атрибут применяется к типу TypeConverterAttribute . Аргумент атрибута ссылается на реализацию преобразователя типов. Преобразователь типов должен иметь возможность принимать значения из строки, используемой для атрибутов или текста инициализации в разметке XAML, и преобразовывать эту строку в предполагаемый тип назначения. Дополнительные сведения см. в разделе TypeConverters и XAML.

Вместо применения ко всем значениям типа можно также установить поведение преобразователя типов для XAML для определенного свойства. В этом случае применяется к TypeConverterAttribute определению свойства (внешнему определению, а не к конкретным get и set определениям).

Поведение преобразователя типов для использования XAML пользовательского присоединяемого элемента можно назначить, применяя TypeConverterAttribute к методу get доступа, поддерживающему использование XAML. Дополнительные сведения см. в разделе Общие сведения о вложенных свойствах.

Для сложных случаев сериализации XAML, требующих дополнительного состояния из среды выполнения объекта, рассмотрите возможность определения сериализатора значений в дополнение к преобразователю типов, а атрибуты поддерживают классы в пользовательских типах или пользовательских членах. Для получения дополнительной информации см. ValueSerializer.

Конструкторы

TypeConverterAttribute()

Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданный по умолчанию преобразователь типов, представляющий собой пустую строку ("").

TypeConverterAttribute(String)

Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданное имя типа в качестве преобразователя данных для объекта, с которым связан этот атрибут.

TypeConverterAttribute(Type)

Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданный тип в качестве преобразователя данных для объекта, с которым связан этот атрибут.

Поля

Default

Определяет, какой тип использовать в качестве преобразователя для объекта, с которым связан этот атрибут.

Свойства

ConverterTypeName

Возвращает полное имя типа Type, используемого в качестве преобразователя для объекта, с которым связан этот атрибут.

TypeId

В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute.

(Унаследовано от Attribute)

Методы

Equals(Object)

Возвращает значение, показывающее, равно ли значение данного объекта текущему атрибуту TypeConverterAttribute.

GetHashCode()

Возвращает хэш-код данного экземпляра.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IsDefaultAttribute()

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.

(Унаследовано от Attribute)
Match(Object)

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.

(Унаследовано от Attribute)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.

(Унаследовано от Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.

(Унаследовано от Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).

(Унаследовано от Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Предоставляет доступ к открытым свойствам и методам объекта.

(Унаследовано от Attribute)

Применяется к

См. также раздел