Xamarin安卓库绑定,删除覆盖修饰符

时间:2016-12-07 19:59:54

标签: dll xamarin binding xamarin.android

我正在尝试在Xamarin Android Binding项目中绑定Android PDF库,但是不必要的"覆盖"修饰符被添加到属性中:

public partial class ReaderView : global::Android.Widget.AdapterView, [...] {
    // ...

    public override unsafe global::Android.Widget.IAdapter Adapter {
        // Metadata.xml XPath method reference: path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='getAdapter' and count(parameter)=0]"
        [Register ("getAdapter", "()Landroid/widget/Adapter;", "GetGetAdapterHandler")]
        get {
            // ...
        }
        // Metadata.xml XPath method reference: path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='setAdapter' and count(parameter)=1 and parameter[1][@type='android.widget.Adapter']]"
        [Register ("setAdapter", "(Landroid/widget/Adapter;)V", "GetSetAdapter_Landroid_widget_Adapter_Handler")]
        set {
            // ...
        }
    }

    // ...
}

我没有找到任何关于添加/删除修饰符的内容,例如"覆盖"或"虚拟"在the documentation

我尝试了这个没有成功:

<attr path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='getAdapter' and count(parameter)=0]" name="override">false</attr>
<attr path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='setAdapter' and count(parameter)=1 and parameter[1][@type='android.widget.Adapter']]" name="override">false</attr>

你们有没有想过如何做到这一点?

编辑1 :Java项目位于GitHub上:https://github.com/asimmon/MuPDF-for-Android,此处为direct link to the file ReaderView.java

编辑2 :Xamarin绑定项目也在GitHub上,您将找到Jar库:https://github.com/asimmon/MuPDF-for-Xamarin-Android

1 个答案:

答案 0 :(得分:0)

解决方案是修改visibility中方法的Metadata.xml

<attr 
   path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='getAdapter']"
   name="visibility">public</attr>

这有效地从您方法的签名中删除了override关键字。