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.
Type |
Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданный по умолчанию преобразователь типов, представляющий собой пустую строку (""). |
Type |
Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданное имя типа в качестве преобразователя данных для объекта, с которым связан этот атрибут. |
Type |
Инициализирует новый экземпляр класса TypeConverterAttribute, используя заданный тип в качестве преобразователя данных для объекта, с которым связан этот атрибут. |
Default |
Определяет, какой тип использовать в качестве преобразователя для объекта, с которым связан этот атрибут. |
Converter |
Возвращает полное имя типа Type, используемого в качестве преобразователя для объекта, с которым связан этот атрибут. |
Type |
В случае реализации в производном классе возвращает уникальный идентификатор для этого атрибута Attribute. (Унаследовано от Attribute) |
Equals(Object) |
Возвращает значение, показывающее, равно ли значение данного объекта текущему атрибуту TypeConverterAttribute. |
Get |
Возвращает хэш-код данного экземпляра. |
Get |
Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
Is |
При переопределении в производном классе указывает, является ли значение этого экземпляра значением по умолчанию для производного класса. (Унаследовано от Attribute) |
Match(Object) |
При переопределении в производном классе возвращает значение, указывающее, является ли этот экземпляр равным заданному объекту. (Унаследовано от Attribute) |
Memberwise |
Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
To |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
_Attribute. |
Сопоставляет набор имен соответствующему набору идентификаторов диспетчеризации. (Унаследовано от Attribute) |
_Attribute. |
Возвращает сведения о типе объекта, которые можно использовать для получения сведений о типе интерфейса. (Унаследовано от Attribute) |
_Attribute. |
Возвращает количество предоставляемых объектом интерфейсов для доступа к сведениям о типе (0 или 1). (Унаследовано от Attribute) |
_Attribute. |
Предоставляет доступ к открытым свойствам и методам объекта. (Унаследовано от Attribute) |
Продукт | Версии |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 2.0, 2.1 |
Отзыв о .NET
.NET — это проект с открытым исходным кодом. Выберите ссылку, чтобы оставить отзыв: