从coldfusion调用.net对象的方法

Nic*_*unt 7 .net c# coldfusion language-interoperability

我试图实例化并调用从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;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的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")>
Run Code Online (Sandbox Code Playgroud)

为了编译dll,我使用的是visual studio 2010,目标是.net 3.5运行时(这是我们在服务器上的内容).我正在使用ColdFusion 8,0,0,176276 来尝试加载dll.

有没有人见过这样的东西?难道我做错了什么?这是一个CF错误吗?

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

Hen*_*nry 3

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

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

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