EnumMemberAttribute Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Specifica che il campo è un membro di enumerazione e deve essere serializzato.
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
- Ereditarietà
- Attributi
Esempio
Nell'esempio seguente l'attributo EnumMemberAttribute viene applicato ai membri di un'enumerazione.
[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
Commenti
EnumMemberAttribute consente un controllo preciso dei nomi delle enumerazioni quando vengono serializzati.
Per utilizzare EnumMemberAttribute, creare un'enumerazione e applicare l'attributo DataContractAttribute all'enumerazione. Applicare quindi l'attributo EnumMemberAttribute a ogni membro che deve essere incluso nel flusso di serializzazione.
Costruttori
EnumMemberAttribute() |
Inizializza una nuova istanza della classe EnumMemberAttribute. |
Proprietà
IsValueSetExplicitly |
Ottiene un valore che indica se Value è stato impostato in modo esplicito. |
TypeId |
Quando è implementata in una classe derivata, ottiene un identificatore univoco della classe Attribute. (Ereditato da Attribute) |
Value |
Ottiene o imposta il valore associato al membro di enumerazione al quale è applicato l'attributo. |
Metodi
Equals(Object) |
Restituisce un valore che indica se questa istanza è uguale a un oggetto specificato. (Ereditato da Attribute) |
GetHashCode() |
Restituisce il codice hash per l'istanza. (Ereditato da Attribute) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IsDefaultAttribute() |
In caso di override in una classe derivata, indica se il valore di questa istanza è il valore predefinito per la classe derivata. (Ereditato da Attribute) |
Match(Object) |
Quando è sottoposto a override in una classe derivata, restituisce un valore che indica se questa istanza equivale a un oggetto specificato. (Ereditato da Attribute) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Esegue il mapping di un set di nomi a un set corrispondente di ID dispatch. (Ereditato da Attribute) |
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera le informazioni sul tipo relative a un oggetto, che possono essere usate per ottenere informazioni sul tipo relative a un'interfaccia. (Ereditato da Attribute) |
_Attribute.GetTypeInfoCount(UInt32) |
Recupera il numero delle interfacce di informazioni sul tipo fornite da un oggetto (0 o 1). (Ereditato da Attribute) |
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornisce l'accesso a proprietà e metodi esposti da un oggetto. (Ereditato da Attribute) |