Поделиться через


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)

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

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