Предполагая, что вы имели в виду searchMethod
как переменную типа Func<TSearch, TReturn>
и mySearchSpec
как некоторую реализацию ISearchSpecification<TSearch>
, вы в основном спрашиваете, как получить атрибуты для класса.
Для этого используйте что-то вроде:
object[] attrs = typeof(mySearchSpec).GetCustomAttributes(false);
Предполагая, что тип mySearchSpec
является открытым, в противном случае вам может потребоваться другая перегрузка для GetCustomAttributes
Добавление
На основании вашего пересмотренного вопроса, чтобы получить атрибуты метода для фактического типа spec
используется:
Type t = spec.GetType();
MethodInfo m = t.GetMethod("nameOfMethodToBeCalledHere");
object[] attrs = m.GetCustomAttributes(false);
Опять же, обратите внимание, что вам могут потребоваться перегрузки для GetMethod
или GetCustomAttributes
в зависимости от реализации фактического класса.
Примечание:
Однако кажется, что вы, возможно, спрашиваете о методе, вызываемом в return searchMethod(spec);
, но это searchMethod
, а не какой-то метод в spec
вообще.
Если вы хотите атрибуты на searchMethod
(ничего общего с spec
):
MethodInfo m = searchMethod.Method;
object[] attrs = m.GetCustomAttributes(false);
Я думаю, что теперь охватывает все перестановки смысла ...