Rejestrowanie zestawów do użycia z modelem COM
Możesz uruchomić narzędzie wiersza polecenia o nazwie Narzędzie rejestracji zestawów (Regasm.exe), aby zarejestrować lub wyrejestrować zestaw do użycia z com. Regasm.exe dodaje informacje o klasie do rejestru systemowego, aby klienci COM mogli w sposób niewidoczny używać klasy .NET Framework. Klasa RegistrationServices zapewnia równoważną funkcjonalność.
Składnik zarządzany musi być zarejestrowany w rejestrze systemu Windows, zanim będzie można go aktywować z poziomu klienta COM. W poniższej tabeli przedstawiono klucze, które Regasm.exe zazwyczaj dodaje do rejestru systemu Windows. (000000 wskazuje rzeczywistą wartość identyfikatora GUID).
Identyfikator GUID | opis | Klucz rejestru |
---|---|---|
CLSID | Identyfikator klasy | HKEY_CLASSES_ROOT\CLSID\{000... 000} |
IID | Identyfikator interfejsu | HKEY_CLASSES_ROOT\Interface\{000... 000} |
LIBID | Identyfikator biblioteki | HKEY_CLASSES_ROOT\TypeLib\{000... 000} |
Progid | Identyfikator programowy | HKEY_CLASSES_ROOT\000... 000 |
W obszarze HKCR\CLSID\{0000... Klucz 0000}, wartość domyślna jest ustawiona na Wartość ProgID klasy, a dodawane są dwie nowe nazwane wartości, Klasa i Zestaw. Środowisko uruchomieniowe odczytuje wartość zestawu z rejestru i przekazuje ją do narzędzia rozpoznawania zestawów środowiska uruchomieniowego. Program rozpoznawania zestawów próbuje zlokalizować zestaw na podstawie informacji o zestawie, takich jak nazwa i numer wersji. Aby program rozpoznawania zestawów lokalizował zestaw, zestaw musi znajdować się w jednej z następujących lokalizacji:
Globalna pamięć podręczna zestawów (musi być zestawem o silnej nazwie).
katalog aplikacji. Zestawy załadowane ze ścieżki aplikacji są dostępne tylko z tej aplikacji.
Wzdłuż ścieżki pliku określonej z opcją /codebase do Regasm.exe.
Regasm.exe również tworzy klucz InProcServer32 w folderze HKCR\CLSID\{0000... Klucz 0000}. Wartość domyślna klucza jest ustawiona na nazwę biblioteki DLL, która inicjuje środowisko uruchomieniowe języka wspólnego (Mscoree.dll).
Badanie wpisów rejestru
Interop COM zapewnia standardową implementację fabryki klas, aby utworzyć wystąpienie dowolnej klasy .NET Framework. Klienci mogą wywoływać klasę DllGetClassObject w zarządzanej biblioteki DLL, aby uzyskać fabrykę klas i utworzyć obiekty, podobnie jak w przypadku dowolnego innego składnika COM.
W przypadku podklucza InprocServer32
odwołanie do Mscoree.dll pojawia się zamiast tradycyjnej biblioteki typów COM, aby wskazać, że środowisko uruchomieniowe języka wspólnego tworzy obiekt zarządzany.