1
Я пытаюсь проверить, имеет ли свойство класса DisplayNameAttribute. Я хотел бы проанализировать свойство и вернуть true или false на основе этих критериев.Проверьте, есть ли свойство DisplayNameAttribute
Это то, что я до сих пор:
Sample Класс:
public class SampleDTO
{
[DisplayName("Some Display Name")]
public int propertyA { get; set; }
public int propertyB { get; set; }
}
Метод:
public static DataTable ToDataTable<T>(this List<T> iList)
{
//(...)
PropertyDescriptorCollection propertyDescriptorCollection = TypeDescriptor.GetProperties(typeof(T));
for (int i = 0; i < propertyDescriptorCollection.Count; i++)
{
PropertyDescriptor propertyDescriptor = propertyDescriptorCollection[i];
Type type = propertyDescriptor.PropertyType;
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>))
type = Nullable.GetUnderlyingType(type);
//check if property has a DisplayNameAttribute
var att = type.GetCustomAttributes(typeof(DisplayNameAttribute), true);
//if it has, add to datatable
if (att != null || !att.Any())
{
//add to datatable...
}
}
//(...)
}
мой вопрос:
//check if property has a DisplayNameAttribute
var att = type.GetCustomAttributes(typeof(DisplayNameAttribute), true);
//if it has, add to datatable
if (att != null || !att.Any())
{
//add to datatable...
}
До сих пор я не смог успешно проверить, имеет ли свойство DisplayNameAttribute.
Право понятие, но более соответствует на вопрос OP, он просто должен заменить 'уаг ATT = type.GetCustomAttributes (TypeOf (DisplayNameAttribute), правда);' 'с вар hasAtt = Attribute.IsDefined (типа, TypeOf (DisplayNameAttribute)); ' –
Я так не думаю, потому что тип его кода вернет' Int32', и поэтому он проверяет, определен ли атрибут на 'Int32'. – CodingYoshi
пятно на @CodingYoshi :) tnx – Ricky