如何在iOS上使用Xamarin未公开的方法?

Tom*_*art 2 c# xamarin.ios ios xamarin

我想使用上存在的方法NSString被调用writeToFile:atomically:encoding:error:,但这种方法不被暴露于Xamarin.iOS.

如何创建允许我使用此方法的绑定?我找到的所有资源都解释了如何绑定库.

我知道有更好的方法可以将字符串写入文件,但这不是关于这个方法,而是如何绑定这些方法.

Tom*_*art 5

所以最后我设法通过绑定库来解决它.

我创建了一个类型为"绑定库(iOS)"的新项目.之后我添加了一个新文件NSStringWriteToFileExtension.cs,在属性中我确保将Build Action设置为ObjcBindingApiDefinition并将以下代码放在那里.

using Foundation;
using ObjCRuntime;

namespace Foundation
{
    [Category]
    [BaseType(typeof(NSString))]
    public interface NSStringWriteToFileExtension
    {
        [Export("writeToFile:atomically:encoding:error:")]
        bool Write(string filePath, bool atomically, NSStringEncoding encoding, out NSError error);
    }
}
Run Code Online (Sandbox Code Playgroud)

这将创建一个新的扩展NSString,使我可以访问该方法.