вызов методов объекта .net из coldfusion

Я пытаюсь создать и вызвать методы объекта .net, созданного из библиотеки dll из coldfusion. Это работает, когда я вызываю методы с одним или нулевым аргументом, но не могу -

System.MissingMethodException: не удалось найти общий метод coldfusion2net.test.setvars

, когда я пытаюсь вызвать метод с более чем одним аргументом.

Вот мой простой класс 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 я использую Visual Studio 2010, нацеленную на среду выполнения .net 3.5 (это то, что у нас есть на наших серверах) . Я использую ColdFusion 8,0,0,176276 , чтобы попытаться загрузить dll.

Кто-нибудь еще видел что-нибудь подобное? Я делаю что-то неправильно? Это ошибка CF?

Я просмотрел статью с интерактивными документами Adobe об ограничениях взаимодействия .NET, но ближе всего я обнаружил, что «ColdFusion не может определить правильное преобразование типа данных, если метод имеет несколько подписей, которые имеют одинаковые количество параметров и различаются только типами данных параметра ». Кажется, здесь проблема не в этом.

7
задан Nick Van Brunt 10 June 2011 в 18:38
поделиться