Importowanie biblioteki typów jako zestawu
Definicje typów MODELU COM zwykle znajdują się w bibliotece typów. Z kolei kompilatory zgodne ze specyfikacją CLS generują metadane typu w zestawie. Dwa źródła informacji o typie są zupełnie inne. W tym temacie opisano techniki generowania metadanych z biblioteki typów. Wynikowy zestaw jest nazywany zestawem międzyoperacyjnym, a informacje o typie, które zawiera, umożliwiają aplikacjom .NET Framework korzystanie z typów COM.
Istnieją dwa sposoby udostępniania informacji o tym typie aplikacji:
Korzystanie z zestawów międzyoperacyjnych tylko w czasie projektowania: począwszy od programu .NET Framework 4, można poinstruować kompilatora, aby osadził informacje o typie z zestawu międzyoperacyjnego w pliku wykonywalnym. Kompilator osadza tylko informacje o typie używanym przez aplikację. Nie trzeba wdrażać zestawu międzyoperajowego z aplikacją. Jest to zalecana technika.
Wdrażanie zestawów międzyoperacyjnych: można utworzyć standardowe odwołanie do zestawu międzyoperacyjnej. W takim przypadku zestaw międzyoperajowy musi zostać wdrożony z aplikacją. Jeśli zastosujesz tę technikę i nie używasz prywatnego składnika COM, zawsze odwołujesz się do podstawowego zestawu międzyoperacyjnej (PIA) opublikowanego przez autora składnika COM, który zamierzasz uwzględnić w kodzie zarządzanym. Aby uzyskać więcej informacji na temat tworzenia i używania podstawowych zestawów międzyoperacyjnych, zobacz Podstawowe zestawy międzyoperacyjne.
W przypadku korzystania z zestawów międzyoperacyjnych tylko w czasie projektowania można osadzać informacje o typie z podstawowego zestawu międzyoperacyjnego opublikowanego przez autora składnika COM. Nie trzeba jednak wdrażać podstawowego zestawu międzyoperajowego w aplikacji.
Korzystanie z zestawów międzyoperacyjnych tylko w czasie projektowania zmniejsza rozmiar aplikacji, ponieważ większość aplikacji nie używa wszystkich funkcji składnika COM. Kompilator jest bardzo wydajny, gdy osadza informacje o typie; Jeśli aplikacja używa tylko niektórych metod w interfejsie COM, kompilator nie osadza nieużywanych metod. Gdy aplikacja z osadzonymi informacjami o typie współdziała z inną taką aplikacją lub wchodzi w interakcję z aplikacją korzystającą z podstawowego zestawu międzyoperacyjnego, środowisko uruchomieniowe języka wspólnego używa reguł równoważności typów w celu określenia, czy dwa typy o tej samej nazwie reprezentują ten sam typ COM. Nie musisz znać tych reguł, aby używać obiektów COM. Jeśli jednak interesują Cię reguły, zobacz Równoważność typów i Osadzone typy międzyoperaniowe.
Generowanie metadanych
Biblioteki typów COM mogą być plikami autonomicznymi, które mają rozszerzenie .tlb, takie jak Loanlib.tlb. Niektóre biblioteki typów są osadzone w sekcji zasobów pliku .dll lub .exe. Inne źródła informacji o bibliotece typów to pliki olb i ocx.
Po zlokalizowaniu biblioteki typów zawierającej implementację docelowego typu COM dostępne są następujące opcje generowania zestawu międzyoperacyjnego zawierającego metadane typu:
Visual Studio
Program Visual Studio automatycznie konwertuje typy COM w bibliotece typów na metadane w zestawie. Aby uzyskać instrukcje, zobacz How to: Add References to Type Libraries (Instrukcje: dodawanie odwołań do bibliotek typów).
Importer biblioteki typów (Tlbimp.exe)
Importer biblioteki typów udostępnia opcje wiersza polecenia, aby dostosować metadane w wynikowym pliku międzyoperacyjności, importuje typy z istniejącej biblioteki typów i generuje zestaw międzyoperacyjny i przestrzeń nazw. Aby uzyskać instrukcje, zobacz How to: Generate Interop Assemblies from Type Libraries (Instrukcje: generowanie zestawów międzyoperacyjnych z bibliotek typów).
Klasa System.Runtime.InteropServices.TypeLibConverter
Ta klasa udostępnia metody konwertowania klas coklas i interfejsów w bibliotece typów na metadane w zestawie. Generuje te same dane wyjściowe metadanych co Tlbimp.exe. Jednak w przeciwieństwie do Tlbimp.exe TypeLibConverter klasa może konwertować bibliotekę typów w pamięci na metadane.
Niestandardowe otoki
Jeśli biblioteka typów jest niedostępna lub niepoprawna, jedną z opcji jest utworzenie zduplikowanej definicji klasy lub interfejsu w zarządzanym kodzie źródłowym. Następnie skompilujesz kod źródłowy za pomocą kompilatora, który jest przeznaczony dla środowiska uruchomieniowego w celu utworzenia metadanych w zestawie.
Aby ręcznie zdefiniować typy MODELU COM, musisz mieć dostęp do następujących elementów:
Dokładne opisy zdefiniowanych klas i interfejsów.
Kompilator, taki jak kompilator języka C#, może wygenerować odpowiednie definicje klas programu .NET Framework.
Znajomość reguł konwersji typu biblioteka-zestaw.
Pisanie niestandardowej otoki jest zaawansowaną techniką. Aby uzyskać dodatkowe informacje o sposobie generowania niestandardowej otoki, zobacz Dostosowywanie standardowych otoek.
Aby uzyskać więcej informacji na temat procesu importowania międzyoperacjowego modelu COM, zobacz Type Library to Assembly Conversion Summary (Biblioteka typów do podsumowania konwersji zestawów).
Zobacz też
- TypeLibConverter
- Udostępnianie składników COM programowi .NET Framework
- Biblioteka typów do podsumowania konwersji zestawów
- Tlbimp.exe (importer biblioteki typów)
- Dostosowywanie standardowych otoek
- Używanie typów COM w kodzie zarządzanym
- Kompilowanie projektu międzyoperacyjnego
- Wdrażanie aplikacji międzyoperacyjnych
- Instrukcje: Dodawanie odwołań do bibliotek typów
- Instrukcje: Generowanie zestawów międzyoperacyjnych z bibliotek typów