Usuário com melhor resposta
Map de WSDL, Reference.vb

Pergunta
-
Olá Pessoal,
Estou em um projeto WinForms (.NET Framework 4), onde adicionei a ele um Web Reference de um wsdl de Magento 1.x Customizado. OK
Quando chamo o método do Reference.vb passando um objeto que tenha propriedades com tipos complexos, a serialização do objeto em xml não cria elementos aninhados, ele cria o elemento em outro lugar e referencia com #id. O problema é que ele faz isso até com propriedade que são arrays. Segue exemplo:
<?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:Magento" xmlns:types="urn:Magento/encodedTypes" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <tns:catalogProductUpdate> <sessionId xsi:type="xsd:string">f203d861c6d2c02277884705d70b61f4</sessionId> <product xsi:type="xsd:string">38333</product> <productData href="#id1" /> <storeView xsi:type="xsd:string">default</storeView> <productIdentifierType xsi:type="xsd:string">sku</productIdentifierType> </tns:catalogProductUpdate> <tns:catalogProductCreateEntity id="id1" xsi:type="tns:catalogProductCreateEntity"> <categories href="#id2" /> <websites href="#id3" /> <name xsi:type="xsd:string">SAIA I TRICOT 29 SEREIA</name> <description xsi:type="xsd:string">SAIA I TRICOT 29 SEREIA</description> <short_description xsi:type="xsd:string">SAIA I TRICOT 29 SEREIA</short_description> <weight xsi:type="xsd:string">0,4</weight> <status xsi:type="xsd:string">2</status> <visibility xsi:type="xsd:string">4</visibility> <has_options xsi:type="xsd:string">1</has_options> <price xsi:type="xsd:string">239</price> <special_price xsi:type="xsd:string">71,7</special_price> <tax_class_id xsi:type="xsd:string">0</tax_class_id> <options_container xsi:type="xsd:string">container1</options_container> <additional_attributes href="#id4" /> <stock_data href="#id5" /> <configurable_products_data href="#id6" /> <configurable_attributes_data href="#id7" /> </tns:catalogProductCreateEntity> <soapenc:Array id="id2" soapenc:arrayType="xsd:string[0]" /> <soapenc:Array id="id3" soapenc:arrayType="xsd:string[1]"> <Item>base</Item> </soapenc:Array> <soapenc:Array id="id4" soapenc:arrayType="tns:associativeEntity[4]"> <Item href="#id8" /> <Item href="#id9" /> <Item href="#id10" /> <Item href="#id11" /> </soapenc:Array> <tns:catalogInventoryStockItemUpdateEntity id="id5" xsi:type="tns:catalogInventoryStockItemUpdateEntity"> <manage_stock xsi:type="xsd:int">1</manage_stock> <use_config_backorders xsi:type="xsd:int">1</use_config_backorders> </tns:catalogInventoryStockItemUpdateEntity> <tns:dadosProdutosConfigurados id="id6" xsi:type="tns:dadosProdutosConfigurados"> <dadoProdutoConfigurado href="#id12" /> </tns:dadosProdutosConfigurados> <soapenc:Array id="id7" soapenc:arrayType="tns:dadoAtributoConfigurado[2]"> <Item href="#id13" /> <Item href="#id14" /> </soapenc:Array> <tns:associativeEntity id="id8" xsi:type="tns:associativeEntity"> <key xsi:type="xsd:string">medidas</key> </tns:associativeEntity> <tns:associativeEntity id="id9" xsi:type="tns:associativeEntity"> <key xsi:type="xsd:string">cor</key> </tns:associativeEntity> <tns:associativeEntity id="id10" xsi:type="tns:associativeEntity"> <key xsi:type="xsd:string">referencia</key> <value xsi:type="xsd:string">38333</value> </tns:associativeEntity> <tns:associativeEntity id="id11" xsi:type="tns:associativeEntity"> <key xsi:type="xsd:string">tamanho</key> </tns:associativeEntity> <soapenc:Array id="id12" soapenc:arrayType="tns:dadoProdutoConfigurado[6]"> <Item href="#id15" /> <Item href="#id16" /> <Item href="#id17" /> <Item href="#id18" /> <Item href="#id19" /> <Item href="#id20" /> </soapenc:Array> <tns:dadoAtributoConfigurado id="id13" xsi:type="tns:dadoAtributoConfigurado"> <label xsi:type="xsd:string">Tamanho</label> <values href="#id21" /> <frontend_label xsi:type="xsd:string">Tamanho</frontend_label> </tns:dadoAtributoConfigurado> <tns:dadoAtributoConfigurado id="id14" xsi:type="tns:dadoAtributoConfigurado"> <label xsi:type="xsd:string">Cor</label> <values href="#id22" /> <frontend_label xsi:type="xsd:string">Cor</frontend_label> </tns:dadoAtributoConfigurado> <tns:dadoProdutoConfigurado id="id15" xsi:type="tns:dadoProdutoConfigurado"> <produto_id xsi:type="xsd:string">12858</produto_id> </tns:dadoProdutoConfigurado> <tns:dadoProdutoConfigurado id="id16" xsi:type="tns:dadoProdutoConfigurado"> <produto_id xsi:type="xsd:string">12859</produto_id> </tns:dadoProdutoConfigurado> <tns:dadoProdutoConfigurado id="id17" xsi:type="tns:dadoProdutoConfigurado"> <produto_id xsi:type="xsd:string">12860</produto_id> </tns:dadoProdutoConfigurado> <tns:dadoProdutoConfigurado id="id18" xsi:type="tns:dadoProdutoConfigurado"> <produto_id xsi:type="xsd:string">12861</produto_id> </tns:dadoProdutoConfigurado> <tns:dadoProdutoConfigurado id="id19" xsi:type="tns:dadoProdutoConfigurado"> <produto_id xsi:type="xsd:string">12862</produto_id> </tns:dadoProdutoConfigurado> <tns:dadoProdutoConfigurado id="id20" xsi:type="tns:dadoProdutoConfigurado"> <produto_id xsi:type="xsd:string">12863</produto_id> </tns:dadoProdutoConfigurado> <tns:dadoAtributoConfiguradoValores id="id21" xsi:type="tns:dadoAtributoConfiguradoValores"> <dadoAtributoConfiguradoValor href="#id23" /> </tns:dadoAtributoConfiguradoValores> <tns:dadoAtributoConfiguradoValores id="id22" xsi:type="tns:dadoAtributoConfiguradoValores"> <dadoAtributoConfiguradoValor href="#id24" /> </tns:dadoAtributoConfiguradoValores> <tns:dadoAtributoConfiguradoValor id="id23" xsi:type="tns:dadoAtributoConfiguradoValor"> <label xsi:type="xsd:string">Tamanho</label> </tns:dadoAtributoConfiguradoValor> <tns:dadoAtributoConfiguradoValor id="id24" xsi:type="tns:dadoAtributoConfiguradoValor"> <label xsi:type="xsd:string">Cor</label> </tns:dadoAtributoConfiguradoValor> </soap:Body> </soap:Envelope>
Há uma configuração para não fazer isso na serialização? Ou há uma maneira de fazer isso sem ter que serializar tudo na mão?
Desde já agradeço.
Respostas
-
Boa tarde, Rômulo Martins. Tudo bem?
Obrigado por usar o fórum MSDN.
Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 18 de setembro de 2017 13:48
Todas as Respostas
-
Boa tarde, Rômulo Martins. Tudo bem?
Obrigado por usar o fórum MSDN.
Essa seria uma questão de "How to/Customização" ou "Break Fix/Erro"?
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.
- Marcado como Resposta Filipe B CastroModerator segunda-feira, 18 de setembro de 2017 13:48
-
Bom dia,
Por falta de retorno essa thread está sendo encerrada.
Se necessário, favor abrir uma nova thread.
Atenciosamente,Filipe B de Castro
Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita
MSDN Community Support
Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.