.Net a COM

Haciendo unas pruebas con librerías de clases en .Net 2.0, trate de responder aquella pregunta de: Se puede crear componentes .Net que funcionen como COMs?

 

Y la verdad, si, se puede🙂

 

Aquí un ejemplo de una clase:

 

using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace ComInteroperability
{
    [ComVisible (true)]
    public class Component
    {

        public string DoSomething()
        {
            return "Hola Mundo";
        }
    }
}

 

Lo único que tenemos que tener en cuenta es importar el espacio de nombre System.Runtime.InteropServices. Que, como es fácil darse cuenta, hace referencia al "puente" entre COM y .Net

 

Y luego, a cada clase, propiedad, método, etc., usar la decoración [ComVisible(true|false)] dependiendo, si queremos que se muestre o no.

 

Además, si trabajamos con Visual Studio 2005, y no queremos trabajar de más con líneas de comandos y esas cosas. Dentro de las propiedades del proyecto, en la seccion BUILD, necesitamos seleccionar la opción Registre For COM Interop. Esto realiza la acción de registrar el proyecto, al construirlo, en el registro del sistema.

 

Finalmente, para consumir este componente, como ejemplo, creamos un archivo con extensión VBS y agregamos el código:

 

dim objNet
dim strMessage

set objNet = CreateObject("ComInteroperability.Component")
strMessage = objNet.DoSomething()

msgbox strMessage

 

Al igual que en los viejos y queridos COMs, necesitamos hacer referencia al nombre del DLL, seguido por la Clase que queremos instanciar.

 

Espero que esto les sirva como para bajar el ritmo y empezar el fin de semana tranquilos.🙂



Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s