COM-взаимодействие, создание. net com и потребление в. net - PullRequest
1 голос
/ 02 апреля 2020

У меня есть сборка, которая предоставляет интерфейс com:

  [ComVisible(true)]
  [Guid("C92A5F13-088F-4776-A967-42A60EFAFC29")]  
  public interface ITestInterface
  {
    byte[] AddItem(string label, byte[] array);
  }

И реализация:

  [ComVisible(true)]
  [Guid("C35C9235-3377-44A7-AC9E-7FCC24EF71D0")]    
  public class Test : ITestInterface
  {
    public byte[] AddItem(string label, byte[] array)
    {
      return null;//irrelevant
    }
  }

Этот ком опубликован в манифесте сборки.

Сейчас на стороне клиента (. net) у меня есть интерфейс:

  public interface ITestInterface
  {
    byte[] AddItem(string label, byte[] array);
  }

и я пытаюсь его активировать:

Type adapter = Type.GetTypeFromProgID("Test.Test");                 
object adapterObj = Activator.CreateInstance(adapter);

ITestInterface myClassAdapter = (ITestInterface)adapterObj;

В последней строке я получаю исключение:

System.InvalidCastException: 'Unable to cast object of type 'Test.Test' to type 'Test.ITest'.'

Что не так с моим "клиентским" интерфейсом. Что я должен изменить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...