繁体   English   中英

如何在 ColdFusion 中使用 C#.NET 程序集?

[英]How can I use C#.NET assemblies in ColdFusion?

我的公司有一个用 ColdFusion 编写的 web 应用程序,我正在尝试集成一个用 C#.Net 编写的 API。 我是 .Net 开发的新手,所以我可能不太了解术语。 我创建了一个非常简单的 C# class 来测试定义如下的 ColdFusion:

namespace FIX
{
    public class IntegersTest
    {
        public int Add(int n, int m)
        {
            return n + m;
        }
    }
}

我能够构建这个 class 和 a.dll 是 output (FIX.dll)。 现在我使用以下代码创建一个 ColdFusion 文件:

<cfobject type="dotnet" class="FIX.IntegerTest" name="math" action="create"
    assembly="C:\path\to\file\FIX.dll">

当我尝试运行它时,出现以下错误:

Class FIX.IntegerTest not found in the specified assembly list.
The assembly that contains the class must be provided to the assembly attribute. 

在 do.net 错误日志中,我看到“正在中止代理生成,因为在依赖 class 列表中找不到任何类。这可能意味着 class FIX.IntegerTest 不存在于程序集中。”

我试过重新安装 ColdFusion.Net 服务以及 ColdFusion 本身。 我尝试了 targeting.Net Framework 3.0 并重新构建 class。我尝试了 cfobject 标记的 class 属性的多种变体。 我不太确定还能做什么。

需要注意的是下面的ColdFusion代码没有报错:

<cfobject type="dotnet" name="sidiClass" class="System.IO.DriveInfo">

我正在使用 Visual Studio 2019、ColdFusion 2018,并将我的测试项目的目标框架设置为 .NET 4.7.2。 任何和所有输入将不胜感激。 谢谢你。

编辑正如@Ageax 指出的那样,我刚刚打错了字,但我得到了另一个 class,即使我确保拼写正确。 答案是目标框架。 ColdFusion 不喜欢我的目标是 .Net Framework 3.0(由于某些原因,第二个项目不允许我切换到 4.0+)。 我用正确的目标框架创建了一个新项目,一切似乎都在工作!

正如@Ageax 所指出的那样,我刚刚打错了字,但即使我确保拼写正确,我还是为另一个 class 得到了这个。 答案是目标框架。 ColdFusion 不喜欢我的目标是 .Net Framework 3.0(由于某些原因,第二个项目不允许我切换到 4.0+)。 我用合适的目标框架 (4.7.2) 创建了一个新项目,一切似乎都在工作!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM