.NET-keretrendszerszerelvények regisztrálása a COM-val

Note

Ez a cikk a .NET-keretrendszer COM-együttműködésére vonatkozó útmutatást ismerteti, amely a régi Assembly Registration Toolt (Regasm.exe), a globális szerelvény-gyűjtőgyorsítótárat és a beállításjegyzék-alapú COM-regisztrációt használja. Modern .NET-hez használja a COM-forráskód-generálást vagy a ComWrappers API-t. További információ: COM interop.

Az szerelvényregisztrációs eszköz (Regasm.exe) nevű parancssori eszközt futtatva regisztrálhat vagy törölhet egy .NET-keretrendszer-szerelvényt a COM-val való használatra. Regasm.exe adatokat ad hozzá az osztályról a rendszerregisztrációs adatbázishoz, hogy a COM-ügyfelek transzparens módon használhassák a .NET-keretrendszer osztályt. Az RegistrationServices osztály egyenértékű funkciókat biztosít.

A .NET-keretrendszer esetében egy felügyelt összetevőt regisztrálni kell a Windows beállításjegyzékben, mielőtt egy COM-ügyfélről aktiválható lenne. Az alábbi táblázat azokat a kulcsokat mutatja be, amelyeket Regasm.exe általában hozzáad a Windows beállításjegyzékéhez. (A 0000000 a tényleges GUID értéket jelzi.)

GUID Leírás Regisztrációs kulcs
CLSID Osztályazonosító HKEY_CLASSES_ROOT\CLSID\{000…000}
IID Interfész azonosítója HKEY_CLASSES_ROOT\Interface\{000…000}
LIBID Kódtár azonosítója HKEY_CLASSES_ROOT\TypeLib\{000…000}
ProgID Programozott azonosító HKEY_CLASSES_ROOT\000…000

A HKCR\CLSID\{0000...0000} kulcs alatt az alapértelmezett érték az osztály ProgID-jára van állítva, és két új, megnevezett érték, az OsztályNeve és a Szerelvény hozzá vannak adva. A futtatókörnyezet beolvassa az Assembly értékét a beállításjegyzékből, és átadja az Assembly feloldójának a futtatókörnyezetben. Az összeállítás-feloldó megkísérli megkeresni az összeállítást az összeállítás információi, például a név és a verziószám alapján. Ahhoz, hogy a szerelvény-feloldó egy szerelvényt találjon, a szerelvénynek az alábbi helyek egyikén kell lennie:

  • A globális szerelvény-gyorsítótárnak (erős nevű szerelvénynek kell lennie).

  • Az alkalmazáskönyvtárban. Az alkalmazás elérési útján betöltött összeállítások csak az adott alkalmazásból érhetők el.

  • A /codebase beállítással megadott fájlútvonal mentén Regasm.exe.

Regasm.exe az InProcServer32 kulcsot is létrehozza a HKCR\CLSID\{0000…0000} kulcs alatt. A kulcs alapértelmezett értéke annak a DLL-nek a nevére van állítva, amely inicializálja a közös nyelvi futtatókörnyezetet (Mscoree.dll).

Beállításjegyzék-bejegyzések vizsgálata

A COM interop in .NET Framework standard osztálygyári implementációt biztosít bármely .NET Keretrendszer-osztály példányának létrehozásához. Az ügyfelek meghívhatják DllGetClassObject a felügyelt DLL-t egy osztály-előállító lekérésére és objektumok létrehozására, ugyanúgy, mint bármely más COM-összetevő esetében.

InprocServer32 Az alkulcs esetében egy hagyományos COM-típusú kódtár helyett megjelenik egy Mscoree.dll mutató hivatkozás, amely jelzi, hogy a közös nyelvi futtatókörnyezet létrehozza a felügyelt objektumot.

Lásd még