none
Consumir WebService passando como parametro uma lista de objetos com um atributo do tipo decimal RRS feed

  • Pergunta

  • Estou tendo problema em consumir (via c#) um webservice construido em java, mais especificadamente em passar um atributo do tipo decimal para uma lista de objetos.
    Alguém sabe se existe algum problema de interoperabilidade referente a isso, li bastante a documentação e não achei nenhum caso que fale que não funciona.
    A classe que o XSD criou a partir do WSDL é a abaixo:

     /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.832")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://webservice.ebs.xxx.com/")]
    public partial class offerProduction : offer
    {
    private decimal precoField;

    [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)]
    public decimal preco
    {
        get
        {
            return this.precoField;
        }
        set
        {
            this.precoField = value;
        }
    }

    .
    .
    .

    }


    No caso quando invoco o método do werbservice ele serializa todos os outros elementos exceto o preco.
    No WSDL a declaração esta como: <xs:element type="xsBig Smileecimal" minOccurs="0" name="preco" />

    Alguém tem alguma idéia?
    terça-feira, 6 de novembro de 2007 22:44

Respostas

  •  

    Descobri o problema.

    Para todo tipo decimal que consumo da classe definado no wsdl tem um outro atributo boleano para marcar se especifica ou não.

     

    Exemplo:

     

       offerProduction wsOferta = new offerProduction(); (Objeto captura do WSDL)

     

       wsOferta.preco = decimal.Parse("999.99");

       wsOferta.precoSpecified =  true;

     

       Por default é false, você deve explicitar true para que a tag preco seja serializada e enviado na mensagem SOAP.

     

     

    sexta-feira, 9 de novembro de 2007 16:49