예제 #1
0
        public override Type MakeGenericType(params Type[] args)
        {
            if (!IsGenericTypeDefinition)
            {
                throw new InvalidOperationException();
            }

            var typeArgs = Braille.JavaScript.Array.New();

            for (var i = 0; i < args.Length; i++)
            {
                typeArgs[i] = ((RuntimeType)args[i]).ctor;
            }

            var openType   = Marshal.ObjectLookup(ctor.Assembly, FullName);
            var closedType = Marshal.Apply(openType, null, typeArgs);

            return(GetInstance(UnsafeCast <constructor>(closedType)));
        }