private static ExtractNativeMethodsFromTypes ( ICollection |
||
types | ICollection |
|
res | ||
Результат | void |
private static void ExtractNativeMethodsFromTypes(ICollection <TypeDefinition> types, ArrayList res) { using (IEnumerator <TypeDefinition> enumerator1 = ((IEnumerable <TypeDefinition>)types).GetEnumerator()) { while (((IEnumerator)enumerator1).MoveNext()) { TypeDefinition current1 = enumerator1.Current; using (Collection <MethodDefinition> .Enumerator enumerator2 = current1.get_Methods().GetEnumerator()) { // ISSUE: explicit reference operation while (((Collection <MethodDefinition> .Enumerator)@enumerator2).MoveNext()) { // ISSUE: explicit reference operation MethodDefinition current2 = ((Collection <MethodDefinition> .Enumerator)@enumerator2).get_Current(); if (current2.get_IsStatic() && current2.get_IsPInvokeImpl() && current2.get_PInvokeInfo().get_Module().get_Name().Equals("__Internal")) { if (res.Contains((object)((MemberReference)current2).get_Name())) { throw new SystemException("Duplicate native method found : " + ((MemberReference)current2).get_Name() + ". Please check your source carefully."); } res.Add((object)((MemberReference)current2).get_Name()); } } } if (current1.get_HasNestedTypes()) { MonoAOTRegistration.ExtractNativeMethodsFromTypes((ICollection <TypeDefinition>)current1.get_NestedTypes(), res); } } } }
private static void ExtractNativeMethodsFromTypes(ICollection <TypeDefinition> types, ArrayList res) { foreach (TypeDefinition current in types) { using (Collection <MethodDefinition> .Enumerator enumerator2 = current.get_Methods().GetEnumerator()) { while (enumerator2.MoveNext()) { MethodDefinition current2 = enumerator2.get_Current(); if (current2.get_IsStatic() && current2.get_IsPInvokeImpl() && current2.get_PInvokeInfo().get_Module().get_Name().Equals("__Internal")) { if (res.Contains(current2.get_Name())) { throw new SystemException("Duplicate native method found : " + current2.get_Name() + ". Please check your source carefully."); } res.Add(current2.get_Name()); } } } if (current.get_HasNestedTypes()) { MonoAOTRegistration.ExtractNativeMethodsFromTypes(current.get_NestedTypes(), res); } } }
private static ArrayList BuildNativeMethodList(AssemblyDefinition[] assemblies) { ArrayList res = new ArrayList(); foreach (AssemblyDefinition assembly in assemblies) { if (!"System".Equals(((AssemblyNameReference)assembly.get_Name()).get_Name())) { MonoAOTRegistration.ExtractNativeMethodsFromTypes((ICollection <TypeDefinition>)assembly.get_MainModule().get_Types(), res); } } return(res); }
private static ArrayList BuildNativeMethodList(AssemblyDefinition[] assemblies) { ArrayList arrayList = new ArrayList(); for (int i = 0; i < assemblies.Length; i++) { AssemblyDefinition assemblyDefinition = assemblies[i]; if (!"System".Equals(assemblyDefinition.Name.Name)) { MonoAOTRegistration.ExtractNativeMethodsFromTypes(assemblyDefinition.MainModule.Types, arrayList); } } return(arrayList); }
private static void ExtractNativeMethodsFromTypes(ICollection <TypeDefinition> types, ArrayList res) { foreach (TypeDefinition current in types) { foreach (MethodDefinition current2 in current.Methods) { if (current2.IsStatic && current2.IsPInvokeImpl && current2.PInvokeInfo.Module.Name.Equals("__Internal")) { if (res.Contains(current2.Name)) { throw new SystemException("Duplicate native method found : " + current2.Name + ". Please check your source carefully."); } res.Add(current2.Name); } } if (current.HasNestedTypes) { MonoAOTRegistration.ExtractNativeMethodsFromTypes(current.NestedTypes, res); } } }