EnumMemberAttribute 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, že pole je člen výčtu a měl by být serializován.
public ref class EnumMemberAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)]
public sealed class EnumMemberAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Field, AllowMultiple=false, Inherited=false)>]
type EnumMemberAttribute = class
inherit Attribute
Public NotInheritable Class EnumMemberAttribute
Inherits Attribute
- Dědičnost
- Atributy
Příklady
Následující příklad ukazuje EnumMemberAttribute použití na členy výčtu.
[DataContract]
public enum Position
{
[EnumMember(Value = "Emp")]
Employee,
[EnumMember(Value = "Mgr")]
Manager,
[EnumMember(Value = "Ctr")]
Contractor,
NotASerializableEnumeration
}
[DataContract]
public class Person : IExtensibleDataObject
{
public Person(string firstNameValue, string lastNameValue)
{
LastName = firstNameValue;
FirstName = lastNameValue;
}
private ExtensionDataObject extensioDataValue;
public ExtensionDataObject ExtensionData
{
get { return extensioDataValue; }
set { extensioDataValue = value; }
}
[DataMember]
internal string FirstName;
[DataMember]
internal string LastName;
[DataMember]
internal Position Description;
}
public sealed class Test
{
private Test() { }
static void Main()
{
try
{
Test t = new Test();
t.Serialize("Enum.xml");
Console.WriteLine("Done");
Console.ReadLine();
}
catch (SerializationException exc)
{
Console.WriteLine(exc.Message);
Console.ReadLine();
}
}
private void Serialize(string path)
{
Console.WriteLine("Serializing...");
Person p = new Person("Denise", "Smith");
p.Description = Position.Manager;
FileStream fs = new FileStream(path, FileMode.Create);
try
{
DataContractSerializer ser =
new DataContractSerializer(typeof(Person));
ser.WriteObject(fs, p);
Console.WriteLine("Done");
}
catch (SerializationException exc)
{
Console.WriteLine(exc.Message);
Console.WriteLine(exc.StackTrace);
}
finally
{
fs.Close();
}
}
}
<DataContract()> _
Public Enum Position
<EnumMember(Value:="Emp")> Employee
<EnumMember(Value:="Mgr")> Manager
<EnumMember(Value:="Ctr")> Contractor
NotASerializableEnumeration
End Enum
<DataContract()> _
Public Class Person
Implements IExtensibleDataObject
Public Sub New(ByVal firstNameValue As String, _
ByVal lastNameValue As String)
LastName = firstNameValue
FirstName = lastNameValue
End Sub
Private extensioDataValue As ExtensionDataObject
Public Property ExtensionData() As ExtensionDataObject _
Implements IExtensibleDataObject.ExtensionData
Get
Return extensioDataValue
End Get
Set
extensioDataValue = value
End Set
End Property
<DataMember()> _
Friend FirstName As String
<DataMember()> _
Friend LastName As String
<DataMember()> _
Friend Description As Position
End Class
NotInheritable Public Class Test
Private Sub New()
End Sub
Shared Sub Main()
WriteObject("Enum.xml")
Console.ReadLine()
End Sub
Shared Sub WriteObject(ByVal path As String)
Console.WriteLine("Writing...")
Dim p As New Person("Denise", "Smith")
p.Description = Position.Manager
Dim fs As New FileStream(path, FileMode.Create)
Try
Dim ser As New DataContractSerializer(GetType(Person))
ser.WriteObject(fs, p)
Console.WriteLine("Done")
Catch exc As SerializationException
Console.WriteLine(exc.Message)
Console.WriteLine(exc.StackTrace)
Finally
fs.Close()
End Try
End Sub
End Class
Poznámky
Umožňuje EnumMemberAttribute jemně řídit názvy výčtů při jejich serializaci.
Chcete-li použít EnumMemberAttribute, vytvořte výčet a použijte DataContractAttribute atribut na výčet. Potom použijte EnumMemberAttribute atribut u každého člena, který musí být ve streamu serializace.
Konstruktory
EnumMemberAttribute() |
Inicializuje novou instanci EnumMemberAttribute třídy. |
Vlastnosti
IsValueSetExplicitly |
Získá, zda Value byla explicitně nastavena. |
TypeId |
Při implementaci v odvozené třídě získá jedinečný identifikátor pro tento Attribute. (Zděděno od Attribute) |
Value |
Získá nebo nastaví hodnotu přidruženou k členu výčtu, na který je atribut použit. |
Metody
Equals(Object) |
Vrací hodnotu, která určuje, zda je tato instance rovna zadanému objektu. (Zděděno od Attribute) |
GetHashCode() |
Vrátí hodnotu hash pro tuto instanci. (Zděděno od Attribute) |
GetType() |
Type Získá aktuální instanci. (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 odvozené třídy. (Zděděno od Attribute) |
Match(Object) |
Při přepsání v odvozené třídě vrátí hodnotu, která označuje, zda se tato instance rovná zadanému objektu. (Zděděno od Attribute) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru 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í
_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 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) |