Mat*_*att 3 .net c# coldfusion coldfusion-8
我在C#中构建了一个非常简单的.dll来从一个简单的ColdFusion页面调用.如果我传入文字值,一切正常,但一旦我尝试并传入一个变量(#rollYear#),我会收到一条消息,说明它无法再找到该方法.
coldfusion页面设置我的.dll像这样:
<cfobject type="dotnet" name="getParcelData"
class="soapDLL.GetSecuredParcelByAPN"
assembly="{path}\soapdll.dll">
Run Code Online (Sandbox Code Playgroud)
然后我这样称呼它:
<cfset output = getParcelData.getData("46546504654","cy","#rollYear#")>
Run Code Online (Sandbox Code Playgroud)
如果我使用上面的代码我得到一个错误,"找不到getData方法." .如果我#rollYear# 用一个值(例如2017)替换变量,那么它可以正常工作.在我的测试中,我在调用.dll之前#rollYear#通过CFSET函数设置了变量.
我整天都在为此而奋斗.有没有人有类似的经历?.dll非常简单.它只需要3个变量,并根据这些变量设置要调用的SOAP服务以撤回一些数据.由于太复杂而无法解释的原因,我无法从ColdFusion中进行SOAP调用,因此必须通过.net dll.
任何帮助将不胜感激,我没有留下太多的头发.:)
无论何时使用Java或.NET组件,在将ColdFusion变量/值传递给这些方法时都需要特别注意.如果数据类型不完全匹配,您将遇到一条错误消息,告诉您该方法不存在或与方法签名不匹配.
ColdFusion提供javaCast()显式转换为所需的数据类型.相应地抛出你的参数,它应该在大多数情况下都可以解决.
基本示例:
需要整数的方法在传递时会抛出错误methodThatExpectsInt(123),因为123文字在内部存储为ColdFusion的字符串(或Double).通过传递methodThatExpectsInt( javaCast("int", 123) ),数据类型将被正确地转换并匹配.
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |