У меня есть метод, который возвращает ссылку на интерфейс IInterfaceA
, и хочу, чтобы бросить его в IInterfaceB
сделать это:Cast к интерфейсу ребенка
IInterfaceA a = SomeMethodThatReturnAnIInterfaceA();
IInterfaceB b = (IInterfaceB)a;
public IInterfaceA : OtherInterfaceA, OtherInterfaceB {}
public IInterfaceB : IInterfaceB {}
Но во время выполнения я получил:
Unable to cast COM object of type 'OPCAutomation.OPCGroupClass' to interface
type 'SemaforosNNM.OPC.OPCDaGroup'. This operation failed because the
QueryInterface call on the COM component for the interface with IID
'{70F93164-7F80-37E3-8EFB-DAB08298316E}' failed due to the following error:
Interfaz no compatible (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).
Что нам здесь не хватает?
Ну, вам не хватает кода, который будет скомпилирован для начала. –
Нет никаких указаний на то, что существуют две помехи. Прочитайте [mcve] руководство и [править] сообщение соответственно. –