Поделиться через


Ошибка компилятора CS1613

Обновлен: Ноябрь 2007

Сообщение об ошибке

Управляемый класс-оболочка coclass "класс" для интерфейса "интерфейс" не найден (возможно, была пропущена ссылка на сборку)
The managed coclass wrapper class 'class' for interface 'interface' cannot be found (are you missing an assembly reference?)

Предпринята попытка создать экземпляр COM-объекта из интерфейса. Интерфейс имеет атрибуты ComImport и CoClass, однако компилятору не удается найти тип, предоставленный для атрибута CoClass.

Чтобы устранить эту неполадку, можно выполнить следующие действия.

  • Добавьте ссылку на сборку, которая содержит компонентный класс (в большинстве случаев интерфейс и компонентный класс должны находиться в одной сборке). Дополнительные сведения см. в разделе /reference или Диалоговое окно "Добавление ссылки".

  • Исправьте атрибут CoClass интерфейса.

В следующем примере демонстрируется правильное применение атрибута CoClassAttribute.

// CS1613.cs
using System;
using System.Runtime.InteropServices;

[Guid("1FFD7840-E82D-4268-875C-80A160C23296")]
[ComImport()]
[CoClass(typeof(A))]
public interface IA{}
public class A : IA {}

public class AA
{
   public static void Main()
   {
      IA i;
      i = new IA(); // This is equivalent to new A().
                    // because of the CoClass attribute on IA
   }
}