none
Dll em C# RRS feed

  • Pergunta

  • Bom Dia, Pessoal 

    Estou com um problema, tenho uma dll desenvolvida em C# de preciso consumir ela em uma programa COBOL, porém não estou visualizando o método dela "CargaProdutos" como mostra o código abaixo:

    namespace MultiRecarga
    {
    
         [ClassInterface(ClassInterfaceType.AutoDual)]
         [ProgId("MultiRecarga.CargaProdutos")]
         [ComVisible(true)]
    
        public class CargaProdutos 
          { 
            
            public CargaProdutos (string codigo_transacao, string loja_primaria, string nome_primario, string senha_primaria, string versao)
    
            {
                string urlpost = ("https://www.cellcard.com.br/teste/integracao_xml.php");
                WebRequest request = WebRequest.Create(urlpost);
                request.Method = "POST";
                request.Credentials = CredentialCache.DefaultCredentials;
                request.ContentType = "application/x-www-form-urlencoded"; 
                Encoding encoding = Encoding.GetEncoding("ISO-8859-1");
    
                string postData =  "codigo_transacao=" + codigo_transacao + "&" +
                                   "loja_primaria="    + loja_primaria    + "&" +
                                   "nome_primario="    + nome_primario    + "&" +
                                   "senha_primaria="   + senha_primaria   + "&" +
                                   "versao="           + versao;
    
                byte[] data = encoding.GetBytes(postData);
                request.ContentLength = data.Length;
                
                Stream newStream = request.GetRequestStream();
                try
                {
                   
                    newStream.Write(data, 0, data.Length);
                }
                catch
                {
                    throw new Exception("Sem conexão com o Provedor de Serviços");
                   
                }
    
                finally
                {
    
                    newStream.Close();
                   
                }
    
                using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    System.IO.StreamWriter arqprod = new System.IO.StreamWriter("c:\\multix\\tmp\\tabprodutos.xml", false); 
    
                    arqprod.WriteLine(reader.ReadToEnd());
                    arqprod.Close();
                    MessageBox.Show("Carga de produtos realizada com sucesso !");
                }
            }
    
        }
    }
    

    porém em cobol quando carrego da dll:

    call "MultiRecarga.dll"

    // chamo a função

        call "CargaProdutos"  --> não é visualizada.

    Se desenvolvo essa dll em Delphi manipulo normalmente as funções, como deixo uma dll em c# com o mesmo conceito de uma dll  em delphi.

    Obrigado


    Thiago Pasqual Analista de Sistemas COBOL - C#

    quinta-feira, 29 de maio de 2014 12:10

Respostas

  • Cara, pelo que observei, você não criou um método, criou um construtor.

    Substitui o:

    public CargaProdutos (string codigo_transacao, string loja_primaria, string nome_primario, string senha_primaria, string versao)

    pelo:

    public void NOME_METODO (string codigo_transacao, string loja_primaria, string nome_primario, string senha_primaria, string versao)


    quinta-feira, 29 de maio de 2014 12:15

Todas as Respostas

  • Cara, pelo que observei, você não criou um método, criou um construtor.

    Substitui o:

    public CargaProdutos (string codigo_transacao, string loja_primaria, string nome_primario, string senha_primaria, string versao)

    pelo:

    public void NOME_METODO (string codigo_transacao, string loja_primaria, string nome_primario, string senha_primaria, string versao)


    quinta-feira, 29 de maio de 2014 12:15
  • Muito obrigado deu certo !


    Thiago Pasqual Analista de Sistemas COBOL - C#

    sexta-feira, 30 de maio de 2014 12:03