• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

fjf

ajuda : createobject em c#

4 mensagens neste tópico

Ola ..

Estou a tentar criar uma rotina em c# para um webservice que aceda a um dll.

Em VB.net sei que posso fazer o código desta forma: 

      Public data As Date

      Dim wmsdoc As Object = CreateObject("MEUDLL.Documento")

            wmsdoc.CarregaDocumento(idDoc

            data = wmsdoc.Data

Mas como consigo fazer o mesmo com c# ?

ou seja eu nao quero referenciar o DLL no projecto mas quero usa-lo dentro  do codigo.Acedendo a funções e propriedades.

É que se não conseguir resolver este problema vou ter que desistir de programar em C# e fazer  o webservice em VB.net.

Eu preferia continuar o desenvolvimento em C#. Se não conseguir resolver o problema nos proximos dias ... vou ter que refazer o meu codigo todo em VB.net porque falta pouco para acabar o projecto ( apenas 2 / 3 rotinas) 

Obrigado pela ajuda ..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Será que ninguem recisou de resolver este tipo de problemas ? Ou melhor será que não é possivel fazer este tipo de associacoes em C# ?

é que em VB.net isto é facil e automatico. Não consigo percebr é como se faz em c#.

Para explicar melhor o que se pretende,

pretendo criar um Webservice que apresenta uma lista de documentos, em que os documentos podem ser documentos de vendas , de compras ou stocks.

Ou seja para que seja transparente, o webservice poderá mostrar os detalhes comuns destes documentos, A data de criação, o tipo de documento a entidade associada etc.

ou seja o webservice vai ter uma classe que vai disponibilizar sempre a mesma informação independentemente do documento carregado.

o que pretendo fazer e em VB.net funciona perfeitamente com estas 3 linhas  de código

é:

            Dim doc As Object = CreateObject( TIPODOCUMENTO & ".Documento")

            doc.CarregaDocumento(idDoc)

           

            Data = doc.Data

            Tipodoc = doc.tipodoc

            entidade=doc.entidade

em que TIPODOCUMENTO pode ser "STOCKS", "VENDAS", "COMPRAS", "ETC" ... "ETC"

e os diferentes documentos têm o método carrega com os mesmos parametros e têm as mesmas propriedades a usar.

Já pesquisei em váris sites e não consigo encontrar como fazer ... e não consigo perceber como é que uma coisa q

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu não sei o que faz isso de VB. Mas pela tua descrição deves querer algo do género.

Assembly a = Assembly.LoadFile("meu.dll");
Object o = a.CreateInstance("MeuTipo");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

     

Eu consigo chegar ao Create instance sem erros , mas depois não consigo usar as propriedades nem métodos ..

Estou a fazer desta forma :

          Type oTYPE = Type.GetTypeFromProgID("ModStocks.Documento");

            object oTemp = Activator.CreateInstance(oTYPE);

          MethodInfo theMethod = oTemp.GetType().GetMethod(@"Carrega");

          theMethod.Invoke(oTemp,  1);

Mas dá sempre erro ao invocar o método carrega !!!

Sou novo nisto e esto ua experimentar..

O componente

    ModStocks.dll

é um componente COM compilado em VB6

Obrigado pela ajuda !! É que eu queria mesmo fazer isto em c# .. mas como tenho mais experiencia em VB6 não consigo implementar em c#. Ainda estou muito «verde» em c# ... mas queria evoluir..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora