使用UnmanagedExports从c#回调到java

使用UnmanagedExports从c#回调到java,java,c#,java-native-interface,Java,C#,Java Native Interface,我所需要的是java能够将函数传递给c#,c#可以在执行后调用该函数。我该怎么做 下面是来自Java和c#类的两个示例代码片段。这只用于将字符串从java传递到c# 示例c#代码 示例Java代码 import com.sun.jna.Native; import com.sun.jna.Library; import java.lang.reflect.Method; public class Hello { public static class CallbackWrap

我所需要的是java能够将函数传递给c#,c#可以在执行后调用该函数。我该怎么做

下面是来自Java和c#类的两个示例代码片段。这只用于将字符串从java传递到c#

示例c#代码

示例Java代码

import com.sun.jna.Native;
import com.sun.jna.Library;
import java.lang.reflect.Method;

public class Hello {

    public static class CallbackWrap 
    {   
        public void Callback(String msg) 
        {
            System.out.println("Call back: " + msg);
        }   
    };

    public interface IHello extends Library
    {
       public String sayHello(String tStr);
       public String processAndCallback(Method callback);      
    };  

    public static void main(String[] args) {
        System.out.println("Hello");        
        IHello iHello = (IHello)Native.loadLibrary("Hello", IHello.class);//call JNA
        System.out.println("Returned: " + iHello.sayHello("Java"));

        Class[] parameterTypes = new Class[1];
        parameterTypes[0] = String.class;
        Method method1 = CallbackWrap.class.getMethod("CallbackWrap::Callback", parameterTypes);

        iHello.processAndCallback(method1);       
    }



}
import com.sun.jna.Native;
import com.sun.jna.Library;
import java.lang.reflect.Method;

public class Hello {

    public static class CallbackWrap 
    {   
        public void Callback(String msg) 
        {
            System.out.println("Call back: " + msg);
        }   
    };

    public interface IHello extends Library
    {
       public String sayHello(String tStr);
       public String processAndCallback(Method callback);      
    };  

    public static void main(String[] args) {
        System.out.println("Hello");        
        IHello iHello = (IHello)Native.loadLibrary("Hello", IHello.class);//call JNA
        System.out.println("Returned: " + iHello.sayHello("Java"));

        Class[] parameterTypes = new Class[1];
        parameterTypes[0] = String.class;
        Method method1 = CallbackWrap.class.getMethod("CallbackWrap::Callback", parameterTypes);

        iHello.processAndCallback(method1);       
    }



}