CORREC플O: A classe de XmlSerializer gera um resultado inesperado quando utiliza a classe de XmlSerializer ao serializar o atributo numeration no .NET Framework 2.0

Tradu寤es de Artigos Tradu寤es de Artigos
Artigo: 943175 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta pgina

Sintomas

Quando utiliza a classe de XmlSerializer ao serializar o atributo de numeration XML no Microsoft .NET Framework 2.0, a classe de XmlSerializer gera um resultado inesperado.

Por exemplo, pensa que o resultado de serializa豫o seja o seguinte:
<myThing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:Scott">
  <MyString xsi:nil="true" /> 
  <OptionC xsi:nil="true"/> 
</myThing>
no entanto, o resultado real o seguinte:
<myThing xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:Scott">
  <MyString xsi:nil="true"/> 
</myThing>

Resolu豫o

Informa寤es sobre a correc豫o

Uma correc豫o suportada est agora disponvel da Microsoft. Contudo, destina-se a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema especfico. Esta correc豫o poder submetida a testes adicionais. Por conseguinte, se no estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo prximo service pack do .NET Framework 2.0 que contenha esta correc豫o.

Para resolver este problema imediatamente, contacte o suporte tcnico da Microsoft para obter a correc豫o. Para obter uma lista completa dos nmeros de telefone de suporte tcnico da Microsoft e informa寤es sobre os custos de suporte, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Nota Em casos especiais, os custos normalmente inerentes s chamadas de suporte podero ser anulados, se um tcnico de suporte da Microsoft determinar que uma actualiza豫o especfica resolver o problema. Os custos normais do suporte sero aplicados a problemas adicionais e questes de suporte que no se enquadrem na atualiza豫o especfica em questo.

Pr-requisitos

Tem de ter o .NET Framework 2.0 instalado para aplicar esta correc豫o.

Requisito de reincio

No necessrio reiniciar o computador depois de aplicar esta correc豫o.

Informa寤es sobre substitui豫o de correc寤es

Esta correc豫o no substitui quaisquer outras correc寤es.

Informa寤es do ficheiro

A verso inglesa desta correc豫o tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros so indicadas na hora universal coordenada (UTC). Quando visualiza as informa寤es do ficheiro, convertido para a hora local. Para determinar a diferena entre a UTC e a hora local, utilize o separador fuso horrio no item data e hora no painel de controlo.
Reduzir esta tabelaExpandir esta tabela
Nome de ficheiroVerso do ficheiroTamanho do ficheiroDataTempoPlataforma
System.XML.dll2.0.50727.9342,031,61630-09-200703: 45x 86

Ponto Da Situa豫o

A Microsoft confirmou que este um problema nos produtos da Microsoft listados na sec豫o "Aplica-se a".

Mais Informa豫o

Para mais informa寤es sobre software actualiza豫o terminologia, clique no nmero de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descri豫o da terminologia padro utilizada para descrever actualiza寤es de software da Microsoft

Passos para reproduzir o problema

  1. Inicie o Visual Studio 2005.
  2. Create a blank C# project by using the following code:
    namespace Test
    {
        class Program
        {
            static void Main(string[] args)
            {
                string outfile = ".\\MyTest.xml";
                myThing mt = new myThing();
                mt.mystring = null;
                mt.ItemElementName = myThing.ItemChoiceType.OptionC;
                mt.item = null;
                mt.itemSpecified = true;
                XmlSerializer ser = new XmlSerializer(typeof(myThing));
                XmlTextWriter wtr = new XmlTextWriter(outfile, Encoding.UTF8);
                ser.Serialize(wtr, mt);
                wtr.Flush();
                wtr.Close();
            }
        }
    
        [XmlRoot(Namespace = "urn:Scott")]
        public class myThing
        {
            [XmlElement("MyString", IsNullable = true)]
            public string mystring;
    
            [XmlChoiceIdentifier("ItemElementName")]
            [XmlElement(ElementName = "OptionA", Type = typeof(object), IsNullable = true)]
            [XmlElement(ElementName = "OptionB", Type = typeof(object), IsNullable = true)]
            [XmlElement(ElementName = "OptionC", Type = typeof(object), IsNullable = true)]
            [XmlElement(ElementName = "OptionD", Type = typeof(object), IsNullable = true)]
            public object item;
    
            [XmlIgnore]
            public bool itemSpecified;
            [XmlIgnore]
            public ItemChoiceType ItemElementName;
            [XmlType(Namespace = "urn:Scott", IncludeInSchema = false, AnonymousType = false)]
            public enum ItemChoiceType
            {
                [XmlEnum("OptionA")]
                OptionA,
                [XmlEnum("OptionB")]
                OptionB,
                [XmlEnum("OptionC")]
                OptionC,
                [XmlEnum("OptionD")]
                OptionD
            }
        }
    }
    
  3. Criar e executar esta aplica豫o.
Quando visualiza o ficheiro MyTest.xml, ver o problema que descreve a sec豫o "Sintomas".

Propriedades

Artigo: 943175 - ltima reviso: 20 de novembro de 2007 - Reviso: 1.0
A informa豫o contida neste artigo aplica-se a:
  • Microsoft .NET Framework 2.0
Palavras-chave:
kbmt kbexpertiseadvanced kbpubtypekc kbqfe kbhotfixserver KB943175 KbMtpt
Tradu豫o automtica
IMPORTANTE: Este artigo foi traduzido por um sistema de tradu豫o automtica (tambm designado por Machine translation ou MT), no tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplica寤es (MT) e artigos traduzidos por tradutores profissionais. O objectivo simples: oferecer em Portugus a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradu豫o automtica no sempre perfeita. Esta pode conter erros de vocabulrio, sintaxe ou gramtica? erros semelhantes aos que um estrangeiro realiza ao falar em Portugus. A Microsoft no responsvel por incoerncias, erros ou estragos realizados na sequncia da utiliza豫o dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualiza寤es frequentes ao software de tradu豫o automtica (MT). Obrigado.
Clique aqui para ver a verso em Ingls deste artigo: 943175

Submeter comentrios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com