/// <summary> /// Resolves the specified type by name in module and referenced (with a maximum depth) /// </summary> /// <param name="moduleDefinition">The module definition.</param> /// <param name="fullName">The full name.</param> /// <param name="ignoreSystem">if set to <c>true</c> [ignore system].</param> /// <param name="depth">The depth.</param> /// <returns></returns> private TypeDefinition Resolve(ModuleDefinition moduleDefinition, string fullName, bool ignoreSystem, int depth) { return moduleDefinition.GetSelfAndReferences(AssemblyResolver, ignoreSystem, depth) .Select(referencedModule => referencedModule.GetTypes() .AsParallel() .FirstOrDefault(t => t.FullName == fullName)) .FirstOrDefault(foundType => foundType != null); }