У моей компании есть веб-приложение, написанное на 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+). Я создал новый проект с правильной целевой структурой, и, похоже, все работает!