Udostępnij za pośrednictwem


Przegląd współdziałania (Przewodnik programowania w języku C#)

Temat zawiera opis metody w celu umożliwienia współdziałania między kod C# zarządzane i kodu niezarządzanego.

Wywołać platformy

Platforma wywołać jest usługa, że umożliwia kod zarządzany do wywoływania niezarządzanego funkcje, które są implementowane w bibliotekach dołączanych dynamicznie (dll), takie jak Microsoft Win32 API.Lokalizuje i wywołuje funkcję wyeksportowaną i marshals jej argumenty (liczby całkowite, ciągi, tablice, struktur i tak dalej) granice współdziałanie, w razie potrzeby.

Aby uzyskać więcej informacji, zobacz Wykorzystywanie niezarządzanych funkcji DLL i Porady: użycie wywołania platformy do odtwarzania pliku Wave (Przewodnik programowania w języku C#).

[!UWAGA]

Środowisko uruchomieniowe języka wspólnego (CLR) (CLR) zarządza dostępem do zasobów systemowych.Wywoływania niezarządzanego kodu, który znajduje się poza CLR pomija ten mechanizm zabezpieczeń, a zatem stanowi zagrożenie bezpieczeństwa.Na przykład kod niezarządzany może wywołać zasobów w niezarządzanego kodu bezpośrednio, pomijając mechanizmy zabezpieczeń środowiska CLR.Aby uzyskać więcej informacji, zobacz .NET Framework zabezpieczeń.

C++ Interop

Można użyć interop C++, znany również jako go po prostu Works (IJW), aby otoczyć macierzystych klas C++, dzięki czemu mogą być wykorzystane przez kod, który został utworzony w języku C# lub innym.NET Framework języka.Aby to zrobić, można napisać kod C++ Zawijaj macierzystym składnika biblioteki DLL lub COM.W odróżnieniu od innych.NET Framework w językach, Visual C++ ma interoperacyjności wsparcia, że umożliwia zarządzanych i niezarządzanych kod ma się znajdować w tej samej aplikacji, a nawet w tym samym pliku.Następnie kompilowania kodu C++ przy użyciu /clr przełącznik kompilatora do wytwarzania zestawu zarządzanych.Wreszcie Dodaj odwołanie do zestawu w projekcie języka C# i tak, jak można użyć innych klas zarządzanych za pomocą obiektów zawinięty.

Uwidacznianie składników COM w C#

Można wykorzystać składnik COM z projektu języka C#.Ogólne kroki są w następujący sposób:

  1. Zlokalizuj składnik COM i zarejestrować go.Za pomocą narzędzia regsvr32.exe do rejestru lub un–register plik COM DLL.

  2. Dodawanie do projektu odwołanie do biblioteki składnika lub typu COM.

    Po dodaniu odwołania, Visual Studio korzysta z Tlbimp.exe (Importer biblioteki typów), która przyjmuje jako dane wejściowe, wyjściowe biblioteki typów.NET Framework zestawu międzyoperacyjnego.Zgromadzenie również o nazwie wpłacone otoki runtime (otoki RCW), zawiera zarządzane klas i interfejsów, które Zawijaj klas COM oraz interfejsów, które znajdują się w bibliotece typów.Visual StudioOdwołanie do zestawu wygenerowanego dodaje do projektu.

  3. Tworzenie instancji klasy, która jest zdefiniowana w otoki RCW.To z kolei tworzy wystąpienia obiektu COM.

  4. Użyj obiektu tak, jak używać innych obiektów zarządzanych.Gdy obiekt jest odzyskane w procesie wyrzucania elementów bezużytecznych, wystąpienia obiektu COM został wydany również z pamięci.

Aby uzyskać więcej informacji, zobacz Udostępnianie składników COM programowi.NET Framework.

Uwidacznianie C# com

COM klientów mogą zużywać typy C#, które zostały prawidłowo narażone.Podstawowe kroki, aby udostępnić typy C# są w następujący sposób:

  1. Dodawanie atrybutów współdziałania w projekcie języka C#.

    Można wprowadzać zestawie COM widoczne modyfikując Visual C# właściwości projektu.Aby uzyskać więcej informacji, zobacz Informacje o zestawie — Okno dialogowe.

  2. Wygenerować biblioteki typów modelu COM, a następnie zarejestrować je w sposób użycia modelu COM.

    Można zmodyfikować Visual C# właściwości, aby automatycznie zarejestrować modułu C# do współdziałania z modelem COM projektu.Visual Studioużywa Regasm.exe (Narzędzie rejestracji zestawów), korzystanie z /tlb przełącznik wiersza polecenia, które przyjmuje zestawu zarządzanych jako dane wejściowe, aby wygenerować biblioteki typów.Zawiera opis tej biblioteki typów public typów w zestawie i dodaje wpisy rejestru, tak aby klienci COM można utworzyć klasy zarządzane.

Aby uzyskać więcej informacji, zobacz Udostępnianie składników .NET Framework modelowi COM i Klasa COM — Przykład (Przewodnik programowania w języku C#).

Zobacz też

Koncepcje

Przewodnik programowania w języku C#

Inne zasoby

Zwiększanie wydajności międzyoperacyjne

Wprowadzenie do współdziałania z modelem COM

Kierowanie pomiędzy zarządzanych i niezarządzanych kodu

Współdziałanie z kodem niezarządzanym

Zaawansowane współdziałanie modeli COM