none
SOAP e WebService RRS feed

  • Pergunta

  • Fala Pessoal.

    Estou criando um projeto onde tenho uma Class Library Funcionando normalmente, nela estão as classes que irão fazer as transações do banco e etc.

    Dentro da solução tenho um WebService, logo adicionei nele como referência o projeto acima, até aí tudo certo, já testei e fucionando ok.

    Quero fazer uma aplicação separada para passar ao WebService as informações por XML só que acabei me perdendo nisso, pois estou com dúvidas se vou precisar adicionar nele também a referencia do primeiro projeto, já que não faz sentido, pois a intenção é usar o WebService somente.

    Nesse caso como passo as informações que serão adicionadas na classe por XML? Já que não vou serializar elas?

    Segue abaixo o´código do WebService:

    Método que recupera os dados.

    <WebMethod()> _

     

    Public Function getInformacao(ByVal id As Integer) As DataTable

     

    Dim dt As DataTable = ClasseDAO.buscar(id)

     

    Return dt

     

    End Function

    Método que recupera os dados.

    <WebMethod()> _

     

    Public Sub setInformacao(ByVal streamXml As Stream)

     

    Dim soapDeserialize As New SoapFormatter

     

    Dim s As ClasseObj = TryCast(soapDeserialize.Deserialize(streamXml), ClasseObj)

    ClasseDAO.inserir(s)

     

    End Sub

     

     

     Alguém pode me ajudar?

    VLW!!

     

     

    quinta-feira, 17 de junho de 2010 16:48

Respostas

  • Caros,

    Felizmente consegui resolver da seguinte maneira:

    No método da aplicação que irá mandar os dados para o XML coloquei o seguinte código.

     

    Dim ms As MemoryStream

     

    Dim serialize As New XmlSerializer(GetType(ClasseTal))

     

    Dim xDoc As New XmlDocument

     

    Dim xml As New StringBuilder

     

    Dim buffer() As Byte

     

    Dim c As ClasseTal

    'Construi o XML no próprio StringBuilder, e adicionei os valores dos controles as tags.

    xml.Append("<?xml version=""1.0"" encoding=""utf-8""?> ")

    xml.Append(

    "<ClasseTal xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"">")

     

     ...

    ...

    ..

    xml.Append(

    "</ClasseTal>")

     

    xDoc.LoadXml(xml.ToString)

    buffer = Encoding.UTF8.GetBytes(xml.ToString())

    ms =

    New MemoryStream(buffer)

    'Depois s mandei o MemoryStream para o WebService e pronto.

     

    Dim c2 As ClasseTal= TryCast(serialize.Deserialize(MemoryStreamRecebido), ClasseTal)

     

    Se alguém tiver um método melhor ou uma dica a mais, estarei interessado!

    Obrigado pela atenção!

     

    quinta-feira, 17 de junho de 2010 20:05