我正在尝试在Coldfusion应用程序中实现.Net组件(这是在我的运行CF 11的开发机器上。
我设置了这样的对象:
<cfset dll = ExpandPath('./com/Interop.CADXLib.dll')>
<cfobject class="CADXLib.CadX" type=".NET" name="cadx" assembly="#dll#”>
这是在我的application.cfc中,在onRequestStart()方法中。然后在我的index.cfm中,我打电话:
<cfdump var="#cadx#”>
对象转储就好了。我可以看到所有内部方法,包括我需要的东西,OpenDesign()方法,它(理论上)打开一个本地文件并读取内容。
接下来我设置了我想要访问的实际文件名:
<cfset thisfile="1571269P01R01_ARTIOS.ARD">
<cfset thispath=getDirectoryfromPath(getCurrentTemplatePath())>
<cfset thisfile=thispath & thisfile>
这有效,并输出“thistfile”给我正确的路径位置。所以现在我称之为实际方法:
<cfset result=cadx.OpenDesign(thisfile,0)>
这就是我被卡住的地方。我收到这个错误:
要么没有指定方法名称和参数类型的方法,要么OpenDesign方法会使用ColdFusion无法可靠解密的参数类型进行重载。 ColdFusion找到了0个与提供的参数匹配的方法。如果这是一个Java对象并且您验证了该方法存在,请使用javacast函数来减少歧义。
我尝试了javacast函数:
<cfset result=cadx.OpenDesign(JavaCast("string",thisfile),JavaCast("int",0))>
同样的错误。找不到方法。但基于转储,该方法显然存在。
有没有人遇到这个或类似的东西?