Используя новую реализацию ColdFusion BlueDragon.NET в Атланте, мы имеем возможность создавать экземпляры объектов C # .NET с использованием тега Cold Fusion. Например:
<cfobject name="list" type=".net" action="CREATE"
class="System.Collections.ArrayList">
В одном случае, однако, нам нужно создать экземпляр универсального типа. Это работает для внутренних типов, таких как System.Int32
:
<cfobject name="list" type=".net" action="CREATE"
class="System.Collections.Generic.List`1[[System.Int32]]">
Но при использовании нашего собственного класса, квалифицированного на ассемблере, вроде следующего:
namespace Foo.Bar.Bam
{
public class MyClassName
}
, который компилируется в сборку Foo.Bar.dll
и используется так:
<cfobject name="list" type=".net" action="CREATE"
class="System.Collections.Generic.List`1[[Foo.Bar.Bam.MyClassName,Foo.Bar]]">
происходит сбой с «Внутренней ошибкой сервера BlueDragon» со следующей трассировкой стека:
java.lang.ClassNotFoundException: Could not load file or assembly 'Foo.Bar]]' or one of its dependencies. The system cannot find the file specified.
at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.Reflection.Assembly.InternalLoad(String assemblyString, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
at System.AppDomain.Load(String assemblyString)
at com.nary.util.ClassUtils.forName(String className)
at com.naryx.tagfusion.cfm.tag.cfOBJECT.render(cfSession session)
at com.naryx.tagfusion.cfm.tag.cfTag.coreRender(cfSession _Session)
at com.naryx.tagfusion.cfm.engine.cfSession.onRequest(cfFile requestFile)
at com.naryx.tagfusion.cfm.engine.cfEngine.service(cfSession _Session)
Без квалификации сборки происходит сбой с ошибкой CFML:
Failed to load class, System.Collections.Generic.List`1[[Foo.Bar.Bam.MyClassName]]
Есть ли способ создать экземпляр универсального типа, используя?