我有一个这样返回NSObject
的方法
[BindingImpl (BindingImplOptions.GeneratedCode | BindingImplOptions.Optimizable)]
public virtual NSObject AgentHandler {
[Export ("agentHandler")]
get {
NSObject ret;
if (IsDirectBinding) {
ret = Runtime.GetNSObject (global::ApiDefinitions.Messaging.IntPtr_objc_msgSend (this.Handle, Selector.GetHandle ("agentHandler")));
} else {
ret = Runtime.GetNSObject (global::ApiDefinitions.Messaging.IntPtr_objc_msgSendSuper (this.SuperHandle, Selector.GetHandle ("agentHandler")));
}
return ret;
}
}
然后我有一个NSObject
类型的班级
public unsafe abstract partial class LSMAHandler : NSObject
我想将NSObject
投射到LSMAHandler
有可能吗?
我做了这样的事情
NSObject handler = lSUniversal.AgentHandler;
var myHandler = (LSMAHandler)handler;
但这给我一个错误
未处理的异常:
System.InvalidCastException:指定的强制转换无效。发生
更新
@property (readonly, nonatomic) NSObject<LSMAHandler,LSMAHandlerPincode,LSMAHandlerRegister> *agentHandler;
这是我的目标c属性。我想在我的ApiDefinition.cs
更新2
[BaseType(typeof(LSMAHandler))]
[Protocol, Model]
interface LSMAHandlerRegister
[Protocol, Model]
interface LSMAHandlerPincode : LSMAHandler
答案 0 :(得分:0)
定义一个像这样的类:
public class AgentHandler : LSMAHandler, LSMAHandlerPincode, LSMAHandlerRegister
{
}
那么您的财产可能是这样的:
public AgentHandler agentHandler;