Оболочки COM

Модель объектов COM отличается от модели .NET Framework по нескольким важным пунктам:

  • Клиенты COM-объектов должны управлять этими объектами в течение всего времени их существования, а среда CLR самостоятельно управляет объектами в течение всего времени их существования в этой среде.

  • Клиенты COM-объектов определяют доступность службы по тому, получат ли они указатель интерфейса, запросив интерфейс, предоставляющий соответствующую службу, или нет. Клиенты объектов .NET могут получить описание функциональных возможностей объекта с помощью отражения.

  • Объекты .NET размещаются в памяти, управляемой средой выполнения .NET Framework. Среда выполнения может перемещать объекты внутри памяти с целью оптимизации производительности и обновлять все ссылки на перемещаемые объекты. Неуправляемые клиенты, получив указатель на объект, считают, что данный объект все время находится в одном и том же месте. У этих клиентов отсутствует механизм работы с объектом, не имеющим постоянного местоположения.

Чтобы преодолеть указанные отличия, среда выполнения содержит классы оболочек, которые заставляют как управляемые, так и неуправляемые клиенты полагать, что они вызывают объекты в своих собственных средах. Когда управляющий клиент вызывает метод для COM-объекта, среда выполнения создает вызываемую оболочку времени выполнения. Вызываемые оболочки времени выполнения помимо других функций абстрагируют различия между ссылочными механизмами управляемых и неуправляемых объектов. Среда выполнения также создает вызываемую оболочку COM для обращения процесса, позволяя COM-клиенту легко вызвать метод в объекте .NET. Как показано на следующем рисунке, вызывающий код определяет класс оболочек, создаваемый средой выполнения.

Общие сведения об оболочках COM

Общие сведения об оболочках COM

В большинстве случаев стандартная вызываемая оболочка времени выполнения или вызываемая оболочка COM, созданная средой выполнения, обеспечивает соответствующий маршалинг вызовов, пересекающих границу между средами COM и .NET Framework. Использование пользовательских атрибутов позволяет настроить способ представления средой выполнения управляемого и неуправляемого кода.

См. также

Задачи

Практическое руководство. Настройка вызываемых оболочек времени выполнения

Основные понятия

Вызываемая оболочка времени выполнения

Вызываемая оболочка COM

Настройка стандартных оболочек

Другие ресурсы

Расширенное COM-взаимодействие