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);
 }
Пример #2
0
 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);
 }