я могу спросить, это неправильно, но может/как вы можете найти поля на класс в себе ... например ...C# Отражение: Обнаружение атрибутов на поле членами
public class HtmlPart {
public void Render() {
//this.GetType().GetCustomAttributes(typeof(OptionalAttribute), false);
}
}
public class HtmlForm {
private HtmlPart _FirstPart = new HtmlPart();
[Optional] //<-- how do I find that?
private HtmlPart _SecondPart = new HtmlPart();
}
Или, может быть, я Я просто делаю это неправильно ... Как я могу вызвать метод, а затем проверить атрибуты, применяемые к себе?
Кроме того, ради вопроса - Мне просто любопытно, можно ли найти информацию об атрибутах без знания/доступа к родительскому классу!
Спасибо. Это казалось «возможным», но опять же я подумал, что этого недостаточно, что он не может работать. – Hugoware
Нет, метод Render отлично подходит для доступа к typeof (HtmlForm) вместо obj.GetType(), тогда вам больше не нужно obj. Конечно, если сам HtmlForm был закрыт, вам может потребоваться найти его через Assembly.GetExecutingAssembly(). GetTypes(). Где (t =>! T.IsGeneric &&! T.IsNested && t.FullName == "MyNamespace. HtmlForm ") или что-то в этом роде. – Timwi