using System; using System.Reflection; [AttributeUsage (AttributeTargets.All)] public class DocAttribute : Attribute { public DocAttribute () {} public DocAttribute (string s) {} } public delegate void Func<[Doc] TArg, [Doc ("ret!")] TRet> (); class Test { public static int Main () { Type[] targs = typeof (Func<,>).GetGenericArguments (); if (targs[0].GetCustomAttributes (false).Length != 1) return 1; if (targs[1].GetCustomAttributes (false).Length != 1) return 2; Console.WriteLine ("OK"); return 0; } }