private static void FinishRegistration(string method, GType type, GMethod res, bool force, string sig, RegSkip skipSignatureBuilder) { if (!res.UseExplicitInterface && !force) { if (type.AllMethods.ContainsKey(sig)) { type.SkippedMethods.Add(res); if (config.Verbose) { Console.WriteLine("Skip " + type + "." + method + "<-" + type.AllMethods[sig].Type); } return; } type.AllMethods.Add(sig, res); } if (res.UseExplicitInterface) { if (type.AllMethods.ContainsKey(sig)) { GMethod rem = type.AllMethods[sig]; type.AllMethods.Remove(sig); type.MethodsWithInterfaces.Remove(rem); } foreach (GMethod skip in type.SkippedMethods) { string skipSig = skipSignatureBuilder(skip); if (skipSig == sig) { type.Methods.Add(skip); type.MethodsWithInterfaces.Add(skip); type.AllMethods.Add(sig, skip); type.SkippedMethods.Remove(skip); break; } } type.AllMethods.Add(res.DeclaringType.Name + "." + sig, res); } type.MethodsWithInterfaces.Add(res); type.Methods.Add(res); }