Как привести базовый класс в подкласс в Xamarin.ios? - PullRequest
0 голосов
/ 21 мая 2019

В моем Xamarin.iOS ApiDefinition.cs у меня есть следующие интерфейсы

// @protocol LSMAHandler <NSObject>
[BaseType(typeof(NSObject))]
[Model]
interface LSMAHandler

 // @protocol LSMAHandlerRegister <LSMAHandler>
[BaseType(typeof(LSMAHandler))]
[Model]
interface LSMAHandlerRegister 

// @protocol LSMAHandlerPincode <LSMAHandler>
[BaseType(typeof(LSMAHandler))]
[Model]
interface LSMAHandlerPincode

Внутри моего другого интерфейса у меня есть свойство, подобное этому.

[Export("agentHandler")]
NSObject AgentHandler { get; }

Хорошо, это мой обязательный проект. Теперь, внутри моего настоящего проекта, я хочу преобразовать это NSObject в LSMAHandler. Поэтому я сделал что-то вроде этого.

 NSObject handler = lSUniversal.AgentHandler;
 LSMAHandler myHandler = (LSMAHandler)handler;

Но эта последняя строка дает мне исключение

Необработанное исключение:

System.InvalidCastException: указанное приведение недействительно. произошло

Пожалуйста, помогите мне. Спасибо

...