TypeConverterAttribute Класс

Определение

Указывает, какой тип использовать в качестве преобразователя для объекта, с которым связан этот атрибут.Specifies what type to use as a converter for the object this attribute is bound to.

public ref class TypeConverterAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.All)]
public sealed class TypeConverterAttribute : Attribute
type TypeConverterAttribute = class
    inherit Attribute
Public NotInheritable Class TypeConverterAttribute
Inherits Attribute
Наследование
TypeConverterAttribute
Атрибуты

Примеры

В следующем примере объявляется MyClass , чтобы использовать преобразователь типов MyClassConverterс именем.The following example declares MyClass to use the type converter called MyClassConverter. В этом примере предполагается, что он реализован в MyClassConverter других местах.This example assumes that MyClassConverter has been implemented elsewhere. Класс, реализующий конвертер (MyClassConverter), должен наследовать TypeConverter от класса.The class implementing the converter (MyClassConverter) must inherit from the TypeConverter class.

[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.The next example creates an instance of MyClass. Затем он получает атрибуты для класса и выводит имя преобразователя типов, используемого MyClass.Then it gets the attributes for the class, and prints the name of the type converter used by 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от.The class you use for conversion must inherit from TypeConverter. ConverterTypeName Используйте свойство, чтобы получить имя класса, предоставляющего преобразование данных для объекта, с которым связан этот атрибут.Use the ConverterTypeName property to get the name of the class that provides the data conversion for the object this attribute is bound to.

Дополнительные сведения об атрибутах см. в разделе Атрибуты.For more information about attributes, see Attributes. Дополнительные сведения о преобразователях типов см. в TypeConverter разделе базовый класс и как: Реализуйте преобразовательтипов.For more information about type converters, see the TypeConverter base class and How to: Implement a Type Converter.

Чтобы установить преобразователь типов для пользовательского класса, предоставляющего поведение преобразования типов для XAML, необходимо применить TypeConverterAttribute атрибут к типу.In order to establish a type converter on a custom class that provides type conversion behavior for XAML, you apply the TypeConverterAttribute attribute to your type. Аргумент атрибута ссылается на реализацию преобразователя типов.The argument of the attribute references your type converter implementation. Преобразователь типов должен иметь возможность принимать значения из строки, используемой для атрибутов или текста инициализации в разметке XAML, и преобразовывать эту строку в предполагаемый целевой тип.Your type converter should be able to accept values from a string that is used for attributes or initialization text in XAML markup, and convert that string into your intended destination type. Дополнительные сведения см. в разделе TypeConverters и XAML.For more information, see TypeConverters and XAML.

Вместо применения ко всем значениям типа, поведение преобразователя типов для XAML также можно установить на конкретном свойстве.Rather than applying to all values of a type, a type converter behavior for XAML can also be established on a specific property. В этом случае вы примените TypeConverterAttribute к определению свойства (внешнее определение, а не конкретные get определения set и).In this case, you apply TypeConverterAttribute to the property definition (the outer definition, not the specific get and set definitions).

Поведение преобразователя типов для использования XAML настраиваемого присоединяемого члена можно назначить с помощью TypeConverterAttribute get метода доступа к методу, который поддерживает использование XAML.A type converter behavior for XAML usage of a custom attachable member can be assigned by applying TypeConverterAttribute to the get method accessor that supports the XAML usage. Дополнительные сведения см. в разделе Общие сведения о вложенных свойствах.For more information, see Attached Properties Overview.

Для сложных вариантов сериализации XAML, требующих дополнительного состояния из среды выполнения объектов, рассмотрите возможность определения сериализатора значений в дополнение к преобразователю типов, а атрибут поддерживает классы как для пользовательских типов, так и для пользовательских элементов.For complex XAML serialization cases that require additional state from the object runtime, consider defining a value serializer in addition to a type converter, and attribute both support classes on your custom types or custom members. Для получения дополнительной информации см. ValueSerializer.For more information, see ValueSerializer.

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

TypeConverterAttribute()

Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданный по умолчанию преобразователь типов, представляющий собой пустую строку ("").Initializes a new instance of the TypeConverterAttribute class with the default type converter, which is an empty string ("").

TypeConverterAttribute(String)

Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданное имя типа в качестве преобразователя данных для объекта, с которым связан этот атрибут.Initializes a new instance of the TypeConverterAttribute class, using the specified type name as the data converter for the object this attribute is bound to.

TypeConverterAttribute(Type)

Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданный тип в качестве преобразователя данных для объекта, с которым связан этот атрибут.Initializes a new instance of the TypeConverterAttribute class, using the specified type as the data converter for the object this attribute is bound to.

Поля

Default

Определяет, какой тип использовать в качестве преобразователя для объекта, с которым связан этот атрибут.Specifies the type to use as a converter for the object this attribute is bound to.

Свойства

ConverterTypeName

Возвращает полное имя типа Type, используемого в качестве преобразователя для объекта, с которым связан этот атрибут.Gets the fully qualified type name of the Type to use as a converter for the object this attribute is bound to.

TypeId

При реализации в производном классе возвращает уникальный идентификатор для этого Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

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

Методы

Equals(Object)

Возвращает значение, показывающее, равно ли значение данного объекта текущему атрибуту TypeConverterAttribute.Returns whether the value of the given object is equal to the current TypeConverterAttribute.

GetHashCode()

Возвращает хэш-код данного экземпляра.Returns the hash code for this instance.

GetType()

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

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

При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

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

При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

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

Создает неполную копию текущего объекта Object.Creates a shallow copy of the current Object.

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

Возвращает строку, представляющую текущий объект.Returns a string that represents the current object.

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

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

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

Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации.Maps a set of names to a corresponding set of dispatch identifiers.

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

Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса.Retrieves the type information for an object, which can be used to get the type information for an interface.

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

Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

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

Предоставляет доступ к открытым свойствам и методам объекта.Provides access to properties and methods exposed by an object.

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

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

Дополнительно