2008-12-10 9 views

Respuesta

6

Puede ser muy simple hacer esto. Pero hay muchos lugares donde no es tan simple. Depende mucho de lo que tu clase necesita para poder hacer, y de cómo pretendes implementarlo.

Algunas cuestiones a considerar:

  • Su clase tiene que tener un constructor sin parámetros.
  • No puede exponer los métodos estáticos.
  • Está implementando su DLL COM en el caché de ensamblados global ¿Está bien? Si no, tendrá que darle un nombre fuerte y registrarlo usando regasm /codebase.
  • ¿Le importa qué GUID identifican la clase y sus interfaces? Si no, puede dejar que regasm los asigne, pero serán diferentes cada vez (y cada lugar) en que se registra la clase. Si necesita que los GUID permanezcan invariables en todas las instalaciones, deberá marcar a los miembros con el atributo Guid.
  • ¿Va a utilizar la clasificación predeterminada de los tipos de datos entre .NET y COM? De lo contrario, necesitará marcar propiedades y métodos con el atributo MarshalAs.
  • ¿Te importa qué clase de interfaz COM expone tu clase? Si es así, tendrá que tratar con el atributo InterfaceType.
  • ¿Necesita su clase plantear o responder a eventos? Si es así, hay implicaciones sobre cómo diseñar su interfaz de clase.

Hay una muy buena (si anticuado) artículo sobre interoperabilidad COM y .Net here. (Muchas cosas de las que habla el artículo, como la generación de bibliotecas de tipos, ahora se manejan automáticamente). Y Microsoft's documentation está actualizado, pero no tan detallado.

5

Debe usar la utilidad regasm para registrar un ensamblaje (como lo hace con regsvr32 con servidores COM). Entonces puedes usarlo desde COM. Asegúrese de que esté instalado en el GAC. El material debe tener [ComVisible(true)] para que se pueda usar desde COM.

1

Hay una opción "COM Accesible" para cada proyecto que puede seleccionar. Entonces, por supuesto, debe registrar el conjunto para usarlo, pero eso es todo.


tuve que ir a buscar un poco para encontrarlo para C# (estoy acostumbrado a VB.Net), pero se pueden encontrar la opción haciendo doble clic sobre la carpeta Properties en el Explorador de soluciones, la elección la pestaña Application y luego haga clic en el botón Assembly Information....

Cuestiones relacionadas