У меня есть эта модель:
public class MobileKeyViewData
{
[Step(StepName="PersonalData")]
public int PhoneNumber { get; set; }
[Step(StepName="PersonalData")]
public string Email { get; set; }
[Step(StepName="Confirmation")]
public int Code{ get; set; }
}
Я создаю StepAttribute для использования в качестве атрибута свойства
public class StepAttribute : Attribute
{
private string stepName;
public string StepName
{
get { return stepName; }
set { stepName = value; }
}
}
У меня есть универсальный класс для получения свойств IEnumerable, передающих «» атрибут класса, экземпляр - это объектная модель и имя свойства.
public static IEnumerable<PropertyInfo> GetPropertiesFrom<T>(this object instance,string propertyName) where T : Attribute
{
var attrType = typeof(T);
var properties = instance.GetType()
.GetProperties()
.Where (x =>
);
//return (T)property.GetCustomAttributes(attrType, false).First();
//typeof(DisplayAttribute), true) //select many because can have multiple attributes
// .Select(e => ((DisplayAttribute)e))) //change type from generic attribute to DisplayAttribute
// .Where(x => x != null).Select(x => x.Name)
return properties;
}
Вопрос: Как вернуть IEnumerable PropertyInfo из модели, где StepAtttribute.StepName равно propertyName?