Как я могу использовать сборки C#. NET в ColdFusion? - PullRequest
3 голосов
/ 05 мая 2020

У моей компании есть веб-приложение, написанное на ColdFusion, и я пытаюсь интегрировать API, написанный на C#. Net. Я новичок в разработке. Net, поэтому, возможно, я не очень разбираюсь в терминологии. Я создал очень простой класс C# для тестирования с помощью ColdFusion, который определяется ниже:

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

Я могу создать этот класс, и на выходе будет получена .dll (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 tnet Я вижу «Прерывание создания прокси, поскольку в списке зависимых классов не было найдено ни одного класса. Это может означать, что класс FIX.IntegerTest отсутствовал в сборке».

Я попытался переустановить ColdFusion. Net Сервис, а также сам ColdFusion. Я попробовал настроить таргетинг. Net Framework 3.0 и пересобрать класс. Я пробовал несколько вариантов атрибута class тега cfobject. Я не совсем уверен, что еще делать.

Следует отметить, что следующий код ColdFusion не выдает ошибки:

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

Я использую Visual Studio 2019, ColdFusion 2018 и установил для моей целевой платформы значение. NET 4.7.2 для моего тестового проекта. Любой вклад будет оценен! Спасибо.

РЕДАКТИРОВАТЬ Как указано @Ageax, я только что допустил опечатку, но я получал это для другого класса, хотя я убедился, что орфография была правильной. Ответом была целевая структура. ColdFusion не понравилось то, что я нацелен. Net Framework 3.0 (этот второй проект по какой-то причине не позволял мне перейти на 4.0+). Я создал новый проект с правильной целевой структурой, и, похоже, все работает!

1 Ответ

2 голосов
/ 05 мая 2020

Как указано @Ageax, я только что допустил опечатку, но я получал это для другого класса, хотя я удостоверился в правильности написания. Ответом была целевая структура. ColdFusion не понравилось то, что я нацелен. Net Framework 3.0 (Этот второй проект по какой-то причине не позволял мне перейти на 4.0+). Я создал новый проект с подходящей целевой структурой (4.7.2), и все вроде работает!

...