TypeConverterAttribute Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger vilken typ som ska användas som konverterare för det objekt som det här attributet är bundet till.
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
- Arv
- Attribut
Exempel
I följande exempel deklareras MyClass att typkonverteraren ska användas med namnet MyClassConverter. Det här exemplet förutsätter att det MyClassConverter har implementerats någon annanstans. Klassen som implementerar konverteraren (MyClassConverter) måste ärva från TypeConverter klassen.
[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
I nästa exempel skapas en instans av MyClass. Sedan hämtar den attributen för klassen och skriver ut namnet på den typkonverterare som används av 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
Kommentarer
Klassen som du använder för konvertering måste ärva från TypeConverter. Använd egenskapen ConverterTypeName för att hämta namnet på klassen som tillhandahåller datakonverteringen för det objekt som attributet är bundet till.
Mer information om attribut finns i Attribut. Mer information om typkonverterare finns i basklassen TypeConverter och Så här implementerar du en typkonverterare.
För att upprätta en typkonverterare för en anpassad klass som tillhandahåller typkonverteringsbeteende för XAML använder TypeConverterAttribute du attributet för din typ. Argumentet för attributet refererar till din typkonverterareimplementering. Typkonverteraren bör kunna acceptera värden från en sträng som används för attribut eller initieringstext i XAML-markering och konvertera strängen till din avsedda måltyp. Mer information finns i TypeConverters och XAML.
I stället för att tillämpas på alla värden av en typ kan en typkonverterares beteende för XAML också upprättas på en specifik egenskap. I det här fallet gäller TypeConverterAttribute du för egenskapsdefinitionen (den yttre definitionen, inte de specifika get definitionerna och set definitionerna).
Ett typkonverterarbeteende för XAML-användning av en anpassad bifogad medlem kan tilldelas genom att tillämpas TypeConverterAttribute på get metodåtkomstorn som stöder XAML-användningen. Mer information finns i Översikt över bifogade egenskaper.
För komplexa XAML-serialiseringsfall som kräver ytterligare tillstånd från objektkörningen bör du överväga att definiera en värdeserialiserare utöver en typkonverterare och tilldela båda stödklasserna för dina anpassade typer eller anpassade medlemmar. Mer information finns i ValueSerializer.
Konstruktorer
| Name | Description |
|---|---|
| TypeConverterAttribute() |
Initierar en ny instans av TypeConverterAttribute klassen med standardtypkonverteraren, som är en tom sträng (""). |
| TypeConverterAttribute(String) |
Initierar en ny instans av TypeConverterAttribute klassen med det angivna typnamnet som datakonverterare för det objekt som attributet är bundet till. |
| TypeConverterAttribute(Type) |
Initierar en ny instans av TypeConverterAttribute klassen med den angivna typen som datakonverterare för det objekt som attributet är bundet till. |
Fält
| Name | Description |
|---|---|
| Default |
Anger vilken typ som ska användas som konverterare för det objekt som attributet är bundet till. |
Egenskaper
| Name | Description |
|---|---|
| ConverterTypeName |
Hämtar det fullständigt kvalificerade typnamnet för det Type som ska användas som konverterare för det objekt som attributet är bundet till. |
| TypeId |
När den implementeras i en härledd klass hämtar du en unik identifierare för den här Attribute. (Ärvd från Attribute) |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Returnerar om värdet för det angivna objektet är lika med det aktuella TypeConverterAttribute. |
| GetHashCode() |
Returnerar hash-koden för den här instansen. |
| GetType() |
Hämtar den aktuella instansen Type . (Ärvd från Object) |
| IsDefaultAttribute() |
När den åsidosättas i en härledd klass anger du om värdet för den här instansen är standardvärdet för den härledda klassen. (Ärvd från Attribute) |
| Match(Object) |
När den åsidosätts i en härledd klass returneras ett värde som anger om den här instansen är lika med ett angivet objekt. (Ärvd från Attribute) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Returnerar en sträng som representerar det aktuella objektet. (Ärvd från Object) |
Explicita gränssnittsimplementeringar
| Name | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappar en uppsättning namn till en motsvarande uppsättning av sändningsidentifierare. (Ärvd från Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Hämtar typinformationen för ett objekt, som kan användas för att hämta typinformationen för ett gränssnitt. (Ärvd från Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Hämtar antalet typinformationsgränssnitt som ett objekt tillhandahåller (antingen 0 eller 1). (Ärvd från Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Ger åtkomst till egenskaper och metoder som exponeras av ett objekt. (Ärvd från Attribute) |