【问题标题】:calling methods on .net object from coldfusion从coldfusion调用.net对象上的方法
【发布时间】:2011-06-10 17:11:31
【问题描述】:

我正在尝试实例化和调用从coldfusion 的dll 创建的.net 对象上的方法。当我使用一个或零个参数调用方法但失败时,这有效 -

System.MissingMethodException:找不到通用方法coldfusion2net.test.setvars

当我尝试调用具有多个 arg 的方法时。

这是我的简单 C# 类:

namespace coldfusion2net
{
    public class test
    {
        protected string myvar;
        protected string myvar2;
        public void setvars(string v, string v2) {
            myvar = v;
            myvar2 = v2;
        }
        public void setvar(string v) {
            myvar = v;
        }
        public string getvar(){
            return myvar;
        }
    }
}

这是我的 ColdFusion 测试:

<cfset dll = ExpandPath('./coldfusion2net.dll')>
<cfobject type=".NET" name="test" class="coldfusion2net.test" assembly="#dll#">
<cfset test.init()>
<!--- object has been loaded --->
<cfdump var="#test#">
<!--- so far so good --->
<cfset test.setvar("foo")>
<cfset s = test.getvar()>
<cfoutput>#s#</cfoutput>
<!--- wtf??? --->
<cfset test.setvars("foo","bar")>

为了编译 dll,我使用了针对 .net 3.5 运行时的 Visual Studio 2010(这是我们服务器上的运行时)。我正在使用 ColdFusion 8,0,0,176276 来尝试加载 dll。

有没有其他人见过这样的事情?难道我做错了什么?这是 CF 错误吗?

我查看了有关 .NET 互操作性限制的 Adob​​e 实时文档的文章,但我发现最接近的是“如果方法具有多个签名且参数数量相同且仅不同的签名,则 ColdFusion 无法确定正确的数据类型转换在参数数据类型中”。这似乎不是这里的问题。

【问题讨论】:

  • CFdump #test# 对象。你看到 setVars() 方法了吗?
  • 你试过javacast("string","foo")吗?
  • @Leigh 当我转储对象时,我看到了所有方法。有问题的方法说 - setvars(java.lang.String, java.lang.String)
  • @Henry 尝试了 javacast,得到了同样的错误
  • hmm...也许你可以让那个 .dll 供我们在 CF9.0.1 中测试?

标签: c# .net coldfusion language-interoperability


【解决方案1】:

不确定这是否有帮助,但是...

将 .NET 版本升级到 3.5 导致问题,因为 ColdFusion .NET 集成服务 已将自身配置为使用 .NET 框架的早期版本。 卸载然后重新安装 ColdFusion .NET 集成服务 解决了我的问题。

http://forums.adobe.com/thread/25391?tstart=0

【讨论】:

    【解决方案2】:

    这里只是跟进。移至 CF9 解决了这个问题。我从来没有弄清楚如何让它在 8 岁以下工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 2016-10-11
      • 1970-01-01
      • 1970-01-01
      • 2016-06-19
      • 1970-01-01
      相关资源
      最近更新 更多