2010-11-16 29 views
0

我们在用C#编写的客户端上使用Drools引擎。我们使用IKVM将drools jar和我们的java beans转换成使用IKVM的dll。我们是一个类似的规则: -IKVM的流口水错误

rule "aggregate rule" 
    when 
     $b : Bill(billAmount > 100) 
     $n : Number(doubleValue > 100) from accumulate ($l : LineItem() from $b.findItems("color", "blue"), sum($l.getSellingValue())) 
    then 
     VoucherSeries fact0 = new VoucherSeries(); 
     fact0.setSeriesCode("aggregate voucher"); 
     insert(fact0); 
     voucherlist.add(fact0); 
     System.out.println("sum" + $n); 
end 

当它与基于Java的Drools API的运行,但同时与IKVM运行它转换滴料此规则正常工作,它引发以下错误: -

无法投射“AccumulateMemory”类型的对象以键入“FromMemory”。

关于可能出错的任何想法?

回答

0

这可能有很多原因。例如classloading问题。它可能是IKVM中的一个错误。等等。

我想不是你会在这里收到有用的答案。您应该联系IKVM的邮件列表,其中包含许多详细信息,例如IKVM版本,您如何编译dll以及可运行示例以展示问题。

这个问题,你只能解决,如果你debug它。