Мобильный широкополосный интерфейс C# для управления профилями

Я пытаюсь использовать интерфейс C# для мобильного широкополосного API. Приведенный ниже код компилирует и intellisense отображает все методы COM, но код не выполняется правильно.

MbnInterfaceManager mbnInfMgr = new MbnInterfaceManager();
IMbnConnectionProfile conProfile = (IMbnConnectionProfile)mbnInfMgr;

string xmlBuff = conProfile.GetProfileXmlData();

Произошла следующая ошибка:

Невозможно привести COM-объект типа 'System.__ComObject' к типу интерфейса.
'MbnApi.IMbnConnectionProfile.
Эта операция завершилась неудачно, поскольку вызов QueryInterface для компонента COM
для интерфейса с IID '{DCBBBAB6-2010-4BBB-AAEE-338E368AF6FA} "не удалось
из-за следующей ошибки:
Такой интерфейс не поддерживается (Исключение из HRESULT: 0x80004002 (E_NOINTERFACE)).

Microsoft перечисляет звонки, как показано ниже:

IMbnConnectionProfile Interface Method C# Signature

Delete              public void Delete();
GetProfileXmlData   public string GetProfileXmlData();
UpdateProfile       public void UpdateProfile( string strProfile);

Похоже, мне нужно указать интерфейс, но не могу понять, как это сделать.

Может кто-нибудь показать мне, как это сделать, пожалуйста?

1 ответ

Решение

Вызывая методы IMbnInterfaceManager::GetInterface или IMbnInterfaceManager::GetInterfaces.

Например

MbnInterfaceManager mbnInfMgr = new MbnInterfaceManager();
IMbnInterfaceManager infManager = (IMbnInterfaceManager)mbnInfMgr;

//obtain the IMbnInterface passing interfaceID
string interfaceID = “{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}”;

IMbnInterface mbnInterface= infMgr.GetInterface(interfaceID);

MbnConnectionProfileManager mbnProfMgr = new MbnConnectionProfileManager();
IMbnConnectionProfileManager profileManager = 
                                  (IMbnConnectionProfileManager)mbnProfMgr;

IMbnConnectionProfile[] profArr = 
(IMbnConnectionProfile[])profileManager.GetConnectionProfiles(mbnInterface);
Другие вопросы по тегам