Mensagem de erro quando você tenta usar um aplicativo cliente que se baseia no .NET Framework 1.1 para consumir um serviço da Web baseada no .NET Framework 2.0: "System.InvalidOperationException"

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: 929545
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Quando você tenta usar um Microsoft .NET Framework 1.1 cliente consumir um serviço da Web baseados em .NET Framework 2.0 de Microsoft, poderá receber uma mensagem de erro semelhante à seguinte:
System.InvalidOperationException: é um erro no documento XML (1, 446). --->
System.FormatException: Seqüência de caracteres de entrada não estava em um formato correto. em System.Number.ParseUInt32 (String s, NumberStyles estilo, NumberFormatInfo info)
em System.Xml.XmlConvert.ToUInt32 (String s)
em Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTestWs.Read1_Object1 (isNullable Boolean, checkType Boolean)
em Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderTestWs.Read6_GetMethodResponse()
em Microsoft.Xml.Serialization.GeneratedAssembly. GetMethodResponseSerializer.Deserialize (XmlSerializationReader leitor)
em System.Xml.Serialization.XmlSerializer.Deserialize (xmlReader XmlReader, String encodingStyle, XmlDeserializationEvents eventos)
Esse comportamento também pode ocorrer quando você usa um cliente baseado em Java.

Observação Esse comportamento não ocorre quando você usa um cliente baseado no .NET Framework 2.0.
Causa
Esse comportamento ocorre porque o .NET Framework 1.1 não oferece suporte a desserialização de tipos de valor nulo.
Como Contornar
Para contornar esse comportamento, modifique a classe proxy para o aplicativo cliente converter tipos de valor nulo em tipos de referência. No exemplo a seguir, o tipo anulável int é convertido para o tipo de seqüência de caracteres . Quando o valor de seqüência de caracteres é retornado, o valor é convertido novamente para o tipo int .

Por exemplo, o código para a classe proxy para o aplicativo cliente pode se parecer com o seguinte código de exemplo.
public class MyClass{  public int id;}
para contornar esse problema, substitua o código para a classe proxy com o código a seguir exemplo.
public class MyClass{  [XmlElement(IsNullable = true)]  public string id;  [XmlIgnore]  public int idValue  {    get    {      if (this.id == null || this.id.Length == 0)        return 0;      return Convert.ToInt32(id);    }    set    {      id = Convert.ToString(value);    }  }}

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 929545 - Última Revisão: 12/09/2015 08:42:19 - Revisão: 1.2

Microsoft .NET Framework 1.1, Microsoft Web Services Enhancements para Microsoft .NET 1.1

  • kbnosurvey kbarchive kbmt kbcode kbexcepthandling kbwebclasses kb80004005 kbwebservices kbexpertiseinter kbtshoot kbprb KB929545 KbMtpt
Comentários