Derlemeleri COM ile Kaydetme
COM ile kullanmak üzere bir derlemeyi kaydetmek veya kaydını kaldırmak için Derleme Kayıt Aracı (Regasm.exe) adlı bir komut satırı aracı çalıştırabilirsiniz. Regasm.exe, COM istemcilerinin .NET Framework sınıfını saydam bir şekilde kullanabilmesi için sistem kayıt defterine sınıfı hakkında bilgi ekler. sınıfı eşdeğer RegistrationServices işlevsellik sağlar.
Yönetilen bir bileşenin BIR COM istemcisinden etkinleştirilmesi için önce Windows kayıt defterine kaydedilmesi gerekir. Aşağıdaki tabloda, Regasm.exe genellikle Windows kayıt defterine eklediği anahtarlar gösterilmektedir. (000000, gerçek GUID değerini gösterir.)
GUID | Açıklama | Kayıt defteri anahtarı |
---|---|---|
CLSID | Sınıf tanımlayıcısı | HKEY_CLASSES_ROOT\CLSID\{000... 000} |
IID | Arabirim tanımlayıcısı | HKEY_CLASSES_ROOT\Interface\{000... 000} |
KİMLİĞİ | Kitaplık tanımlayıcısı | HKEY_CLASSES_ROOT\TypeLib\{000... 000} |
Progıd | Programlı tanımlayıcı | HKEY_CLASSES_ROOT\000... 000 |
HKCR\CLSID\{0000 altında... 0000} anahtarı, varsayılan değer sınıfın ProgID değerine ayarlanır ve Sınıf ve Derleme adlı iki yeni adlandırılmış değer eklenir. Çalışma zamanı, kayıt defterinden Derleme değerini okur ve çalışma zamanı derleme çözümleyicisine geçirir. Derleme çözümleyicisi, adı ve sürüm numarası gibi derleme bilgilerine göre derlemeyi bulmaya çalışır. Derleme çözümleyicisinin bir derlemeyi bulması için derlemenin aşağıdaki konumlardan birinde olması gerekir:
Genel derleme önbelleği (tanımlayıcı adlı bir derleme olmalıdır).
Uygulama dizininde. Uygulama yolundan yüklenen derlemelere yalnızca bu uygulamadan erişilebilir.
Regasm.exe için /codebase seçeneğiyle belirtilen bir dosya yolu boyunca.
Regasm.exe ayrıca HKCR\CLSID\{0000... altında InProcServer32 anahtarını da oluşturur. 0000} anahtar. Anahtarın varsayılan değeri, ortak dil çalışma zamanını (Mscoree.dll) başlatan DLL'nin adına ayarlanır.
Kayıt Defteri Girdilerini İnceleme
COM birlikte çalışma, herhangi bir .NET Framework sınıfının örneğini oluşturmak için standart bir sınıf fabrika uygulaması sağlar. İstemciler, bir sınıf fabrikası almak ve nesneleri oluşturmak için yönetilen DLL'de DllGetClassObject'i çağırabilir ve diğer TÜM COM bileşenlerinde olduğu gibi nesneleri oluşturabilir.
Alt anahtar için, ortak dil çalışma zamanının InprocServer32
yönetilen nesneyi oluşturduğunu belirtmek için geleneksel com türü kitaplığı yerine bir Mscoree.dll başvurusu görüntülenir.