TypeConverterAttribute Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Určuje, k jakému typu se má použít jako převaděč objektu, ke které je tento atribut vázán.
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
- Dědičnost
- Atributy
Příklady
Následující příklad deklaruje MyClass použití převaděče typů volaný MyClassConverter. Tento příklad předpokládá, že MyClassConverter se implementoval jinde. Třída implementuje převaděč (MyClassConverter) musí dědit z TypeConverter třídy.
[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
Další příklad vytvoří instanci MyClass. Poté získá atributy pro třídu a vytiskne název převaděče typů používaný 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();
// 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
Poznámky
Třída, kterou používáte pro převod, musí dědit z TypeConverter. ConverterTypeName Pomocí vlastnosti získejte název třídy, která poskytuje převod dat objektu, ke kterému je tento atribut vázán.
Další informace o atributech naleznete v tématu Atributy. Další informace o převaděčích typů naleznete v TypeConverter základní třídě a postupy: Implementace převaděče typů.
Chcete-li vytvořit převaděč typů ve vlastní třídě, která poskytuje chování převodu typů pro XAML, použijete TypeConverterAttribute atribut na váš typ. Argument atributu odkazuje na implementaci převaděče typů. Převaděč typů by měl být schopen přijímat hodnoty z řetězce, který se používá pro atributy nebo inicializační text v kódu XAML, a převést tento řetězec na zamýšlený cílový typ. Další informace naleznete v tématu TypeConverters a XAML.
Místo použití u všech hodnot typu lze u konkrétní vlastnosti vytvořit také chování převaděče typů pro XAML. V tomto případě použijete TypeConverterAttribute definici vlastnosti (vnější definici, nikoli konkrétní get a set definice).
Chování převaděče typů pro použití vlastního připojitelného členu XAML lze přiřadit použitím TypeConverterAttribute přístupového objektu get metody, který podporuje použití XAML. Další informace najdete v přehledu přidružených vlastností.
V případě složitých případů serializace XAML, které vyžadují další stav z modulu runtime objektu, zvažte definování serializátoru hodnot kromě převaděče typů a atribut třídy podpory pro vlastní typy nebo vlastní členy. Další informace najdete na webu ValueSerializer.
Konstruktory
| Name | Description |
|---|---|
| TypeConverterAttribute() |
Inicializuje novou instanci TypeConverterAttribute třídy pomocí výchozího převaděče typů, což je prázdný řetězec (""). |
| TypeConverterAttribute(String) |
Inicializuje novou instanci TypeConverterAttribute třídy pomocí zadaného názvu typu jako převaděč dat objektu, na který je tento atribut vázán. |
| TypeConverterAttribute(Type) |
Inicializuje novou instanci TypeConverterAttribute třídy pomocí zadaného typu jako převaděč dat objektu, ke které je tento atribut vázán. |
Pole
| Name | Description |
|---|---|
| Default |
Určuje typ, který se má použít jako převaděč objektu, na který je tento atribut vázán. |
Vlastnosti
| Name | Description |
|---|---|
| ConverterTypeName |
Získá plně kvalifikovaný typ název Type použít jako převaděč pro objekt, který tento atribut je vázán. |
| TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Metody
| Name | Description |
|---|---|
| Equals(Object) |
Vrátí, zda hodnota daného objektu je rovna aktuální TypeConverterAttribute. |
| GetHashCode() |
Vrátí kód hash pro tuto instanci. |
| GetType() |
Získá Type aktuální instance. (Zděděno od Object) |
| IsDefaultAttribute() |
Při přepsání v odvozené třídě určuje, zda hodnota této instance je výchozí hodnotou pro odvozenou třídu. (Zděděno od Attribute) |
| Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která určuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
| MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Object. (Zděděno od Object) |
| ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
Explicitní implementace rozhraní
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapuje sadu názvů na odpovídající sadu identifikátorů pro rozesílání. (Zděděno od Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Načte informace o typu objektu, který lze použít k získání informací o typu pro rozhraní. (Zděděno od Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Získá počet rozhraní typu informací, které objekt poskytuje (0 nebo 1). (Zděděno od Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Poskytuje přístup k vlastnostem a metodám vystaveným objektem. (Zděděno od Attribute) |