Прочитать на английском

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


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

Управляемый класс-оболочка coclass "класс" для интерфейса "интерфейс" не найден (возможно, была пропущена ссылка на сборку).

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

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

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

  • Исправьте атрибут 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  
   }  
}