예제 #1
0
        Type _MakeGenericType(JsExtendedArray typeArguments)
        {
            if (_MakeGenericTypeCache == null)
            {
                _MakeGenericTypeCache = new JsObject();
            }
            var key = "";

            for (var i = 0; i < typeArguments.length; i++)
            {
                var typeArg = typeArguments[i].As <JsImplType>();
                key += typeArg._Name;
            }
            var t = _MakeGenericTypeCache[key].As <JsImplType>();

            if (t == null)
            {
                t = new JsImplType(_JsType);
                _MakeGenericTypeCache[key] = t;
                t._Name = _Name;
                t._GenericTypeDefinition = this;
                t._TypeArguments         = typeArguments;
                t._Properties            = _Properties;
                t._PropertiesByName      = _PropertiesByName;
                t._Methods          = _Methods;
                t._MethodsByName    = _MethodsByName;
                t._DeclaringType    = _DeclaringType;
                t._CustomAttributes = _CustomAttributes;
            }
            return(t.As <Type>());
        }
예제 #2
0
 public bool IsAssignableFrom(JsImplType type)
 {
     throw new NotImplementedException();
 }
예제 #3
0
 public static object CreateInstance(JsImplType type, bool nonPublic)
 {
     throw new NotImplementedException();
 }
예제 #4
0
 public static object CreateInstance(JsImplType type, object[] args, object[] activationAttributes)
 {
     throw new NotImplementedException();
 }
예제 #5
0
 public static object CreateInstance(JsImplType type, params object[] args)
 {
     throw new NotImplementedException();
 }
예제 #6
0
 public static object CreateInstance(JsImplType type, BindingFlags bindingAttr, Binder binder, object[] args, CultureInfo culture, object[] activationAttributes)
 {
     throw new NotImplementedException();
 }
예제 #7
0
 public static object CreateInstance(JsImplType type)
 {
     return(JsCompiler.NewByFunc(type._JsType.ctor));
 }