В С#, как я могу определить, является ли свойство статическим? (.Net CF 2.0)
В поле FieldInfo есть элемент IsStatic, но PropertyInfo не работает. Я предполагаю, что я просто не замечаю, что мне нужно.
Type type = someObject.GetType();
foreach (PropertyInfo pi in type.GetProperties())
{
// umm... Not sure how to tell if this property is static
}
Ответы
Ответ 1
Чтобы определить, является ли свойство статическим, вы должны получить MethodInfo для get или set accessor, вызывая метод GetGetMethod или GetSetMethod и изучая его свойство IsStatic.
http://msdn.microsoft.com/en-us/library/system.reflection.propertyinfo.aspx
Ответ 2
Почему бы не использовать
type.GetProperties(BindingFlags.Static)
Ответ 3
Как реальное быстрое и простое решение поставленного вопроса, вы можете использовать это:
property.GetAccessors(true)[0].IsStatic;