我试图在我的C#项目中使用外部jar的方法。 所以,我有一个java项目
package externalpackage.srp;
public class stringPair {
private String a;
private String b;
public stringPair(String a, String b) {
this.a = a;
this.b = b;
}
public String concat() {
return this.a + this.b;
}
}
我使用IKVM将其导入dll:
ikvmc test.jar
然后我将test.dll添加到引用中。 现在我试图在我的C#项目中使用它。
using System;
using System.Reflection;
using System.Reflection.Emit;
namespace HelloWorld
{
class Hello
{
static void Main()
{
string a = "aaa";
string b = "bbb";
java.lang.Class clazz = typeof(externalpackage.srp.stringPair);
java.lang.Thread.currentThread().setContextClassLoader(clazz.getClassLoader());
object obj = new externalpackage.srp.stringPair(a, b);
Console.WriteLine(obj.concat());
Console.ReadKey();
}
}
}
Visual Studio显示错误:' object'不包含' concat'的定义没有延伸方法' concat'接受类型'对象'的第一个参数。可以找到(你错过了使用指令或程序集引用吗?)
看起来对象已成功创建,但是contat方法可能无法执行。我该如何正确使用concat?
答案 0 :(得分:0)
您只需要将变量的类型更改为stringPair(而不是对象):
object obj = new ...
到
externalpackage.srp.stringPair obj = new ...