Luați în considerare modul de a crea un COM-obiect din C # în mediul .NET
1. Definiți o interfață pentru clasa, descrie metodele care urmează să fie puse în aplicare în clasa noastră. Crearea de utilitate guidgen.exe GUID-dy. care se află în mod implicit în directorul "C: \ Program Files \ Microsoft SDK-uri \ Windows \ v6.0A \ Bin \ guidgen.exe".
[Guid ( "01D10028-A89D-47ee-8048-C27B6DD4BE63")]
IMyClass publice interfață
[DispId (1)]
nule HelloWorld (mymessage string);
>
2. Definiți o interfață pentru evenimente COM.
// Evenimente
[Guid ( "5FAC6B03-6D95-46ed-A3C1-B0DBEE34D022"),
InterfaceType (ComInterfaceType.InterfaceIsIDispatch)]
IMyEvents publice interfață
>
3. Descrieți clasa pentru a implementa interfata.
///
/// clasa mea
///
[Guid ( "349988BC-2594-46cf-BE83-1F09C25617F3"),
ClassInterface (ClassInterfaceType.None),
ComSourceInterfaces (typeof (IMyEvents))]
Clasa_Mea public class. IMyClass
///
/// constructor
///
Clasa_Mea publice ()
>
///
/// Buna ziua!
///
void HelloWorld publice (mymessage string)
MessageBox.Show ((mymessage.Equals (String.Empty) "Bună ziua!" "Bună ziua" + mymessage), "Test de Biblioteca", MessageBoxButtons.OK, MessageBoxIcon.Information ..);
>
>
4. Activați opțiunea în Proprietăți proiect Asigurați-Vizibil Adunarea COM. Același lucru este valabil pentru toate bibliotecile care vor fi utilizate pentru noastre COM-adaptor.
Puteți marca un ansamblu ca importate-COM: în fila Proprietăți proiect activat în pavilion Build Înregistrează Interop COM. Acest lucru vă va permite să vă înregistrați ansamblul imediat în registru la momentul compilării. Deși, am avut probleme cu această opțiune. Am înregistrat biblioteca adaptor folosind regasm.exe.
5. Conectați-vă numele unic de asamblare (StrongName). Pe Proprietăți proiect filă: Properties - Semnarea - Sign Adunarea - pe, trebuie să specificați numele cheii fișierului. Parola nu este necesară. fișierul va fi creat în mod automat * .snk, în acest caz, a fost declarat TesLib1.snk numele
6. În fișierul AssemblyInfo.cs, trebuie să specificați un parametru care conține numele de fișier semnătură:
Acest punct este de dorit, dar nu este obligatoriu.
7. Compilați construi noastre și de a obține biblioteca * .dll gata de înregistrare în sistem ca COM-obiect.
8. Sistem de bibliotecă Înregistrare folosind utilitarul regasm.exe. care se află în mod implicit în folderul "C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ RegAsm.exe". Pentru a vă înregistra, aveți nevoie pentru a executa o comandă în consolă:
La reasamblarea biblioteca COM-adaptor să fie eliminate în prealabil din bibliotecă legate adaptor GAC. Dacă acest lucru nu se face, BIN folderul \ Release (Debug), numai că va însuși biblioteca adaptor.
În cele din urmă, puteți verifica performanțele noastre COM-obiect cu o simplă aplicație care-ETM este în coșul disponibil pentru dosarul de descărcare exemple.
Vreau să mulțumesc Shripad Kulkarni, bazat pe articolul pe care l-am scris această notă.