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
- Наследование
- Атрибуты
Примеры
В следующем примере объявляется 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) |