我对Monotouch中P/Invoke
的了解非常可怕,我想为UITextView
(特别是setContentToHTMLString
)调用私有iOS API,我不知道在哪里甚至从这开始。
如果有人能告诉我这是怎么做的(或者甚至从哪里开始!)那将是非常棒的。
请注意,这是我正在做的个人项目,主要是为了拓宽我的知识面。此应用程序提交到应用商店的可能性非常小,因此不受App Store规定/ Apple更改它的可能性的限制。
修改的
仅仅是使用Selector
的情况吗?
答案 0 :(得分:2)
使用选择器调用它的最简单方法,如下所示:
Selector s = new Selector("myPrivateAPIMethodName");
MyObjectToCallTheMethodOn.PerformSelector(s, parameterOfTheObject, 0);
当然,要非常小心这一点.. Apple不会容忍你的应用程序上的私有API调用,所以如果你打算像你想要的那样使用类似的东西去AppStore,他们会拒绝你的应用。
答案 1 :(得分:0)
如果您尝试调用私有.net方法,则可以使用反射。
您可以使用以下代码作为示例:
object oToInvoke;
//Get the type of object
Type t = typeof( oToInvoke );
//Invoke 'PrivateMethodName'
return t.InvokeMember( "PrivateMethodName",
System.Reflection.BindingFlags.NonPublic
| System.Reflection.BindingFlags.Instance
| System.Reflection.BindingFlags.InvokeMethod
, null
, oToInvoke
, null );
这将允许调用可以具有返回类型的方法。您只需要转换InvokeMember的返回类型
在System.Reflection命名空间
中希望有所帮助!