Отражение изнутри Java

У меня есть библиотека Java, и я создал библиотеку Bindings с помощью Xamarin. Все работает, но у меня есть небольшая проблема с отражением. Вот упрощенный вид

В 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(){
    }
}

Это душит эффектно, потому что methodOnMe не найден Java. В любом случае, как это сделать?

1 ответ

Хорошо. Для тех из вас, кто наткнулся на это - нужно добавить атрибут экспорта.

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

В дополнение к вышесказанному, решение некоторых других проблем, с которыми мы столкнулись здесь: http://blog.androidjetpack.com/post/Android-DataGrid-Xamarin-Support-Added-Java-Binding-Project-Issues.aspx

Другие вопросы по тегам