Você está offline; aguardando reconexão

CORRECÇÃO: A classe XmlSerializer gera um resultado inesperado quando você usa a classe XmlSerializer para serializar o atributo numeration no .NET Framework 2.0

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 943175
Sintomas
Quando você usa a classe XmlSerializer para serializar o atributo de numeration XML no Microsoft .NET Framework 2.0, a classe XmlSerializer gera um resultado inesperado.

Por exemplo, você espera que o resultado de serialização para ser 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 o hotfix

Um hotfix com suporte foi disponibilizada pela Microsoft. No entanto, destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico. Esta correcção poderá submetida a testes adicionais. Portanto, se você não tiver sido gravemente afetado por esse problema, recomendamos que você aguarde o próximo service pack do .NET Framework 2.0 que contém esse hotfix.

Para resolver esse problema imediatamente, contate o Microsoft Customer Atendimento para obter o hotfix. Para obter uma lista completa de telefones do serviço de suporte a clientes da Microsoft e informações sobre os custos de suporte, visite o seguinte site: Observação Em alguns casos, as taxas cobradas pelas ligações para chamadas de suporte podem ser canceladas se um profissional de suporte da Microsoft determinar que uma atualização específica resolverá o problema. Os custos normais de suporte serão aplicados a questões e problemas que não se qualificam à atualização específica em questão de suporte adicionais.

Pré-requisitos

Você deve ter o .NET Framework 2.0 instalado para aplicar esse hotfix.

Requisitos de reinicialização

Não é necessário reiniciar o computador após aplicar esse hotfix.

Informações sobre a substituição do hotfix

Esse hotfix não substitui outros hotfixes.

Informações sobre o arquivo

A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos estão listadas no horário de universal coordenado (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário no item Data e hora no painel de controle.
Nome de arquivoVersão do arquivoTamanho do arquivoDataTempoPlataforma
System.XML.dll2.0.50727.9342,031,61630-09-200703: 45x 86
Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Mais Informações
Para obter mais informações sobre software atualização terminologia, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
824684Descrição da terminologia padrão que é usada para descrever as atualizações de software

Etapas 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 este aplicativo.
Quando você exibir o arquivo MyTest.xml, você verá o problema descrito na seção "Sintomas".

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 943175 - Última Revisão: 11/20/2007 18:43:14 - Revisão: 1.0

Microsoft .NET Framework 2.0

  • kbmt kbexpertiseadvanced kbpubtypekc kbqfe kbhotfixserver KB943175 KbMtpt
Comentários