我有一个Java库,并且使用Xamarin创建了Bindings DLL。一切正常,但我对反思的看法不大。这是简化的视图

在Java中:

JavaClass {

    public Object delegate;
    public String methodName;

    public void executeMethod() {
        delegate.getClass().getMethod(methodName).invoke(); //simplified
    }
}


在Xamarin中:

CSharpActivity {

    protected override void onCreate(Bundle b){

        JavaClass c = new JavaClass ();
        c.Delegate = this;
        c.MethodName = "MethodOnMe";
        c.ExecuteMethod();
    }

    public void MethodOnMe(){
    }
}


这很令人窒息,因为Java找不到methodOnMe。有什么办法做到这一点?

最佳答案

确定对于那些对此迷迷糊糊的人-需要添加导出属性。

[Java.Interop.Export("MethodOnMe")]
public void MethodOnMe(){


除了上述内容,还可以解决我们在这里遇到的其他一些问题:
http://blog.androidjetpack.com/post/Android-DataGrid-Xamarin-Support-Added-Java-Binding-Project-Issues.aspx

10-08 07:09