gpt4 book ai didi

c# - 在 ColdFusion 中将变量传递给 .NET dll

转载 作者:行者123 更新时间:2023-11-30 14:45:26 26 4
gpt4 key购买 nike

我用 C# 构建了一个非常简单的 .dll 以从简单的 ColdFusion 页面调用。如果我传入文字值,一切正常,但当我尝试传入变量 (#rollYear#) 时,我收到一条消息,说明它无法再找到该方法。

coldfusion 页面像这样设置我的 .dll:

<cfobject type="dotnet" name="getParcelData" 
class="soapDLL.GetSecuredParcelByAPN"
assembly="{path}\soapdll.dll">

然后我这样调用它:

<cfset output = getParcelData.getData("46546504654","cy","#rollYear#")>

如果我使用上面的代码,我会得到一个错误,“找不到 getData 方法。”。如果我用一个值(例如 2017)替换 #rollYear# 变量,那么它就可以正常工作。在我的测试中,我在调用 .dll 之前通过 CFSET 函数设置了 #rollYear# 变量。

我整天都在为这个问题苦苦思索。有没有人有过类似的经历? .dll 非常简单。它只需要 3 个变量,并根据这些设置调用什么 SOAP 服务来拉回一些数据。由于太复杂而无法解释的原因,我无法从 ColdFusion 中执行 SOAP 调用,它必须通过 .net dll。

任何帮助将不胜感激,我的头发不多了。 :)

最佳答案

无论何时使用 Java 或 .NET 组件,在将 ColdFusion 变量/值传递给这些方法时都需要格外注意。如果数据类型不完全匹配,您将遇到一条错误消息,告诉您该方法不存在或与方法签名不匹配。

ColdFusion 提供 javaCast()显式转换为所需的数据类型。相应地提出你的论点,它应该在大多数情况下都能奏效。

基本示例:
当您传递 methodThatExpectsInt(123) 时,需要整数的方法将引发错误,因为 ColdFusion 在内部将 123 文字存储为字符串(或 Double)。通过 methodThatExpectsInt( javaCast("int", 123) ) 传递它,数据类型将被正确转换并匹配。

关于c# - 在 ColdFusion 中将变量传递给 .NET dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53788046/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com