使用jni4net在Java中访问C#对象作为方法参数

时间:2018-10-29 09:09:35

标签: java c# jni4net

我们能够用C#代码调用Java,并能够将字符串和整数作为方法参数传递。可以直接使用java java.lang.String和java.lang.Integer来访问字符串,而不会出现问题。 但是,当我们将C#自定义对象作为方法参数传递时,我们找不到访问它的方法。 例如:Employee.cs是带有参数名称的C#类。 使用proxygen创建EmployeeLibraray.dll,EmployeeLibraray.j4n.dll和EmployeeLibraray.j4n。

我们试图传递C#对象的C#代码

var bs = new BridgeSetup();
bs.AddAllJarsClassPath("./");
Bridge.CreateJVM(bs);
Bridge.RegisterAssembly(typeof(JavaTest).Assembly);
JavaTest obj = new JavaTest();    ================================> JavaTest 
is the class generated using proxygen where it is called in C#
EmployeeLibraray.Employee e = new EmployeeLibraray.Employee();   
===========> Custom C# object to be passed to Java 
 e.LoginName = "test";
 obj.execute( e);

Java代码

public void execute(system.Object inputObj) throws Exception {
}

问题

我们应该如何将inputObj强制转换为Employee,以便可以直接访问e.getName()。

0 个答案:

没有答案