This section summarizes the process needed to expose an existing COM component to managed code. For details about writing COM servers that tightly integrate with the .NET Framework, see Design Considerations for Interoperation.
Existing COM components are valuable resources in managed code as middle-tier business applications or as isolated functionality. An ideal component has a primary interop assembly and conforms tightly to the programming standards imposed by COM.
To expose COM components to the .NET Framework
The common language runtime requires metadata for all types, including COM types. There are several ways to obtain an assembly containing COM types imported as metadata.
You can inspect COM types, activate instances, and invoke methods on the COM object the same way you do for any managed type.
The Windows Software Development Kit (SDK) provides compilers for several languages compliant with the Common Language Specification (CLS), including Visual Basic 2005, C#, and C++.
Interop applications are best deployed as strong-named, signed assemblies in the global assembly cache.
Interoperating with Unmanaged Code
Design Considerations for Interoperation
COM Interop Sample: .NET Client and COM Server
Language Independence and Language-Independent Components
Gacutil.exe (Global Assembly Cache Tool)