代码之家  ›  专栏  ›  技术社区  ›  Dave Arkell

蓖麻和IKVM

  •  1
  • Dave Arkell  · 技术社区  · 16 年前

    我已经用IKVM将Java编写的API转换成.NET DLL,到目前为止还不错。

    它基本上使用后台XML访问一些Web服务。API是第三方,我无法访问源代码。API使用Castor(我相信)将XML绑定到对象中。

    然而,当我开始使用API中一些更有用的部分时,我发现了Castor的一个问题。我的具体错误是:

    “嵌套错误:org.exolab.castor.mapping.mappingException:找不到类…”

    所提到的类是API的一部分。从网上搜索,它 seems 该castor无法访问该类,因为它与castor位于单独的程序集中。

    我的问题是,我对Java中的类加载器的理解不够,而且可能对IKVM了解不够。

    有人使用IKVM与Casor(或其他可能在Java类上使用反射的其他库),并在此之前遇到过这个问题吗?

    1 回复  |  直到 16 年前
        1
  •  2
  •   Dave Arkell    16 年前

    嗯,我很惊讶没人能回答这个问题,所以我把我的问题贴到了iKVM邮件列表上,得到了回复。

    答案确实与Castor库和我使用的第三方API代码的分离有关。

    我使用的解决方案是添加选项:

    -classloader:ikvm.runtime.AppDomainAssemblyClassLoader
    

    用ikvmc编译castor时。

    这允许Castor与第三部分API通信,并允许我从Web服务获取报告。