// Token: 0x06001404 RID: 5124 RVA: 0x0005E944 File Offset: 0x0005CB44 internal Class_500 vmethod_3625(object obje_0) { if (this.field_2 == null) { this.field_1 = typeof(Class_501 <>).MakeGenericType(new Type[] { this.prop_0 }); Type type; if (Class_514.InheritsGenericDefinition(this.field_0, typeof(List <>)) || this.field_0.GetGenericTypeDefinition() == typeof(IEnumerable <>)) { type = typeof(ICollection <>).MakeGenericType(new Type[] { this.prop_0 }); } else { type = this.field_0; } ConstructorInfo constructor = this.field_1.GetConstructor(new Type[] { type }); this.field_2 = Class_470.ReflectionDelegateFactory.pmethod_4009(constructor); } return((Class_500)this.field_2(new object[] { obje_0 })); }
// Token: 0x06001403 RID: 5123 RVA: 0x0005E5A4 File Offset: 0x0005C7A4 public Class_447(Type arg_0) : base(arg_0) { this.field_5 = Class_448.Array; this.prop_2 = base.prop_1.IsArray; bool bool_; Type type; if (this.prop_2) { this.prop_0 = Class_514.GetCollectionItemType(base.prop_0); this.field_6 = true; this.field_0 = typeof(List <>).MakeGenericType(new Type[] { this.prop_0 }); bool_ = true; this.prop_1 = (this.prop_2 && base.prop_0.GetArrayRank() > 1); } else if (typeof(IList).IsAssignableFrom(arg_0)) { if (Class_514.ImplementsGenericDefinition(arg_0, typeof(ICollection <>), out this.field_0)) { this.prop_0 = this.field_0.GetGenericArguments()[0]; } else { this.prop_0 = Class_514.GetCollectionItemType(arg_0); } if (arg_0 == typeof(IList)) { base.prop_1 = typeof(List <object>); } if (this.prop_0 != null) { this.field_4 = Class_510.ResolveEnumerableCollectionConstructor(arg_0, this.prop_0); } this.field_6 = Class_514.InheritsGenericDefinition(arg_0, typeof(ReadOnlyCollection <>)); bool_ = true; } else if (Class_514.ImplementsGenericDefinition(arg_0, typeof(ICollection <>), out this.field_0)) { this.prop_0 = this.field_0.GetGenericArguments()[0]; if (Class_514.IsGenericDefinition(arg_0, typeof(ICollection <>)) || Class_514.IsGenericDefinition(arg_0, typeof(IList <>))) { base.prop_1 = typeof(List <>).MakeGenericType(new Type[] { this.prop_0 }); } if (Class_514.IsGenericDefinition(arg_0, typeof(ISet <>))) { base.prop_1 = typeof(HashSet <>).MakeGenericType(new Type[] { this.prop_0 }); } this.field_4 = Class_510.ResolveEnumerableCollectionConstructor(arg_0, this.prop_0); bool_ = true; this.prop_3 = true; } else if (Class_514.ImplementsGenericDefinition(arg_0, typeof(IEnumerable <>), out type)) { this.prop_0 = type.GetGenericArguments()[0]; if (Class_514.IsGenericDefinition(base.prop_0, typeof(IEnumerable <>))) { base.prop_1 = typeof(List <>).MakeGenericType(new Type[] { this.prop_0 }); } this.field_4 = Class_510.ResolveEnumerableCollectionConstructor(arg_0, this.prop_0); if (!this.prop_6 && arg_0.Name == "FSharpList`1") { Class_484.EnsureInitialized(arg_0.Assembly); this.field_5 = Class_484.CreateSeq(this.prop_0); } if (arg_0.IsGenericType && arg_0.GetGenericTypeDefinition() == typeof(IEnumerable <>)) { this.field_0 = type; this.field_6 = false; this.prop_3 = false; bool_ = true; } else { this.field_0 = typeof(List <>).MakeGenericType(new Type[] { this.prop_0 }); this.field_6 = true; this.prop_3 = true; bool_ = this.prop_6; } } else { bool_ = false; this.prop_3 = true; } this.prop_4 = bool_; }