#.net #aop
#.net #aop
Вопрос:
Возможно ли получить доступ к свойствам атрибута изнутри элемента, к которому он применен (например, метода)? Например, с помощью приведенного ниже кода могу ли я получить доступ к свойству атрибута «RequiresConnection» с помощью метода «Search»?
[RequiresConnection]
public SearchResult Search(SearchInfo searchInfo)
{
}
Ответ №1:
Конечно
class TheClass {
[RequiresConnection]
public SearchResult Search(SearchInfo searchInfo) {
MethodInfo methodInfo = typeof(TheClass).GetMethod("Search");
RequiresConnection attrib = (RequiresConnection).methodInfo.GetCustomAttributes(
typeof(RequiresConnection),
false)[0];
Ответ №2:
Вы можете использовать отражение. В примере конкретно не выполняется то, что вы хотите, но вы можете адаптировать его, вызвав GetCustomAttributes
из своего метода.
Ответ №3:
Конечно. Это будет что-то вроде
var attributes = StackTrace.GetFrame(0).GetMethod().GetCustomAttributes();