Мобильный широкополосный интерфейс 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);