Exportar (0) Imprimir
Expandir Tudo
Este artigo foi traduzido por máquina. Coloque o ponteiro do mouse sobre as frases do artigo para ver o texto original. Mais informações.
Tradução
Original
Este tópico ainda não foi avaliado como - Avalie este tópico

Classe EnumMemberAttribute

Especifica que o campo é um membro de enumeração e deve ser serializado.

System.Object
  System.Attribute
    System.Runtime.Serialization.EnumMemberAttribute

Namespace:  System.Runtime.Serialization
Assembly:  System.Runtime.Serialization (em System.Runtime.Serialization.dll)
[AttributeUsageAttribute(AttributeTargets.Field, Inherited = false, AllowMultiple = false)]
public sealed class EnumMemberAttribute : Attribute

O tipo EnumMemberAttribute expõe os membros a seguir.

  NomeDescrição
Método públicoCom suporte por Biblioteca de Classes PortátilCom suporte em .NET para aplicativos da Windows StoreEnumMemberAttributeInicializa uma nova instância da classe EnumMemberAttribute.
Superior
  NomeDescrição
Propriedade públicaTypeId Quando implementada em uma classe derivada, obtém um identificador exclusivo para este atributo. (Herdado de Attribute.)
Propriedade públicaCom suporte por Biblioteca de Classes PortátilCom suporte em .NET para aplicativos da Windows StoreValueObtém ou define o valor associado com o atributo é aplicado para o membro de enumeração.
Superior
  NomeDescrição
Método públicoCom suporte por Biblioteca de Classes PortátilCom suporte em .NET para aplicativos da Windows StoreEqualsInfraestrutura. Retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute.)
Método públicoCom suporte por Biblioteca de Classes PortátilCom suporte em .NET para aplicativos da Windows StoreGetHashCode Retorna o hash code para essa instância. (Herdado de Attribute.)
Método públicoCom suporte por Biblioteca de Classes PortátilCom suporte em .NET para aplicativos da Windows StoreGetType Obtém o Type da instância atual. (Herdado de Object.)
Método públicoIsDefaultAttributeQuando substituído em uma classe derivada, indica se o valor desta instância é o valor padrão para a classe derivada. (Herdado de Attribute.)
Método públicoMatchQuando substituído em uma classe derivada, retorna um valor que indica se esta instância é igual a um objeto especificado. (Herdado de Attribute.)
Método públicoCom suporte por Biblioteca de Classes PortátilCom suporte em .NET para aplicativos da Windows StoreToStringRetorna uma string que representa o objeto atual. (Herdado de Object.)
Superior
  NomeDescrição
Implementação explícita da interfaceMétodo particular_Attribute.GetIDsOfNamesMapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular_Attribute.GetTypeInfoRecupera as informações de tipo para um objeto, que pode ser usado para obter as informações de tipo para uma interface. (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular_Attribute.GetTypeInfoCountRecupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1). (Herdado de Attribute.)
Implementação explícita da interfaceMétodo particular_Attribute.InvokeFornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute.)
Superior

O EnumMemberAttribute habilita multa de controle dos nomes das enumerações conforme eles são serializados.

Para usar EnumMemberAttribute, crie uma enumeração e aplicar o DataContractAttribute como a enumeração de atributo. Em seguida, aplique a EnumMemberAttribute de atributo a cada membro que precisa estar no fluxo de serialização.

A exemplo a seguir mostra EnumMemberAttribute aplicados aos membros de uma enumeração.


[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();
        }
    }
}


.NET Framework

Com suporte em: 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Com suporte em: 4, 3.5 SP1

Biblioteca de Classes Portátil

Com suporte em: Biblioteca de Classes Portátil

.NET para aplicativos da Windows Store

Com suporte em: Windows 8

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Função Server Core sem suporte), Windows Server 2008 R2 (Função Server Core com suporte com o SP1 ou posterior, Itanium sem suporte)

O .NET Framework não oferece suporte a todas as versões de cada plataforma. Para obter uma lista das versões com suporte, consulte Requisitos do sistema do .NET Framework.
Qualquer estático (Shared no Visual Basic) membro público desse tipo é thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.
Isso foi útil para você?
(1500 caracteres restantes)
Agradecemos os seus comentários

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft. Todos os direitos reservados.