Pregunta Com+

21/12/2007 - 17:56 por Napoleon | Informe spam
Saludos,
Tengo una duda , espero me puedan ayudar..
Tengo un proyecto en VB.net y c# 2005, un com+ esta diseñado en c#,
lo registro y lo incluyo en los servicios com+ del servidor,,
la inquietud que tengo es que los proyectos desarrollados en VB, usan el com
usando la sintaxis
Dim t As Type = Type.GetTypeFromProgID("ServicedCOM.SimpleComponent", True)
Dim obTraslados As Object = Activator.CreateInstance(t)
y sin necesidad de hacer refencia al proy com...y funciona perfectamente,,

el problema surge en C#, no puedo realizar algo similar,, y lo que tengo que
hacer es una referencia al proyecto com y ahi puedo hacer uso del mismo...
Mi pregusnta es,, para usar el com+ en c# debe ser simpre refenciado al com y
asi su respectivo uso, o existe otro metodo,, o que estoy haciendo mal...

De antemano gracias por su tiempo y gran ayuda.
 

Leer las respuestas

#1 Alberto Poblacion
21/12/2007 - 19:29 | Informe spam
"Napoleon" wrote in message
news:
Tengo una duda , espero me puedan ayudar..
Tengo un proyecto en VB.net y c# 2005, un com+ esta diseñado en c#,
lo registro y lo incluyo en los servicios com+ del servidor,,
la inquietud que tengo es que los proyectos desarrollados en VB, usan el
com
usando la sintaxis
Dim t As Type = Type.GetTypeFromProgID("ServicedCOM.SimpleComponent",
True)
Dim obTraslados As Object = Activator.CreateInstance(t)
y sin necesidad de hacer refencia al proy com...y funciona perfectamente,,

el problema surge en C#, no puedo realizar algo similar,, y lo que tengo
que
hacer es una referencia al proyecto com y ahi puedo hacer uso del mismo...
Mi pregusnta es,, para usar el com+ en c# debe ser simpre refenciado al
com y
asi su respectivo uso, o existe otro metodo,, o que estoy haciendo mal...



En C# se puede crear el Objeto exactamente igual que en Visual Basic, lo que
pasa es que luego, cuando vayas a llamar a sus propiedades y métodos no
podrás hacerlo directamente como en VB desde el Object, porque C# no te
admite la sintaxis de "late binding" (ni el VB tampoco si le pones el
"Option Strict On", cosa que en general siempre deberías hacer con una
posible excepción que es precisamente esta (para usar "late binding")). Si
quieres hacer lo mismo con C# tendrás que usar Reflexion, con lo cual el
código fuente te quedará bastante engorroso (aunque se ejecutará igual que
el de VB).

Lo ideal, tanto en C# como en VB, es poner la Referencia al proyecto com+ y
usar "early binding" en ambos. En ambos casos, en tiempo de ejecución, se
pasa a través de los Servicios de Componentes, aunque hayas puesto en el
Proyecto una Referencia directa a la librería de clases.

Preguntas similares