/// <summary> /// Build a class from my data. /// </summary> private ClassFile BuildClass(IClassLoader loader, out List<DexImportField> fields, out List<DexImportMethod> methods) { // Build class var cf = new ClassFile(null, loader) { IsCreatedByLoader = true }; cf.ClassName = className; cf.ClassAccessFlags = (ClassAccessFlags) GetAccessFlags(); cf.SuperClass = GetSuperClassName(); cf.SetSignature(GetSignature()); // Add fields fields = types.SelectMany(x => x.Fields).Where(x => x.GetDexOrJavaImportAttribute() != null).Select(x => new DexImportField(x)).ToList(); cf.Fields.AddRange(fields.Select(x => x.Resolve(cf))); // Add methods methods = types.SelectMany(x => x.Methods).Where(x => x.GetDexOrJavaImportAttribute() != null).Select(x => new DexImportMethod(x, x.GetDexOrJavaImportAttribute())).ToList(); cf.Methods.AddRange(methods.Select(x => x.Resolve(cf))); return cf; }