我试图在Xamarin Android绑定项目中绑定Android PDF库,但是将不必要的" Override"修饰符添加到属性中:
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 {
// ...
}
}
// ...
}
我没有发现任何添加/删除修饰符,例如文档中的"覆盖"或"虚拟"。
我在没有成功的情况下尝试了这一点:
<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/mmupdf-for-android,这是指向文件readerview.java.java。p> 编辑2 :Xamarin Binding项目也在GitHub上,您也会找到JAR库:https://github.com/asimmon/mupdf-for-xamarin-android
解决方案是修改Metadata.xml
中的visibility
:
<attr
path="/api/package[@name='com.artifex.mupdfdemo']/class[@name='ReaderView']/method[@name='getAdapter']"
name="visibility">public</attr>
这有效地从方法的签名中删除了override
关键字。