dimanche 22 janvier 2017

Get an exception on PropertyInfo.GetCustomAttribute

I'm working on the business model for my first project(please excuse me if someone finds my code lack of quality, important thing is i'm making progress). I'm stuck trying to find the reason for a bug. I'm creating a view which rely on reflection of properties and custom attributes. I get a null reference exception when i use the PropertyInfo.GetCustomAttribute for the second time on a "property's property". Why does my second call return null. As you can see I have applied the attribute on the property(_TopSchools) which i invoke method on.

public class EducationFilter : Filter
{
    [FilterAttribute(FilterType.Child, "Topschools")]//I cant get this attr!
    public TopSchoolFilter _TopSchool { get; set; }
}

public class TopSchoolFilter :BooleanFilter
{

}

public class Filters
{
    [FilterAttribute(FilterType.Parent, "Education")] //This i can...
    public EducationFilter _EducationFilter { get; set; }

    public Filters(EducationFilter educationFilter)
    {
        this._EducationFilter = educationFilter;
    }
}

public StackLayout GenerateFilterView(PropertyInfo p,TestModel vm)
        {
            StackLayout tempStack = new StackLayout();
            **FilterAttribute filterAttr = p.GetCustomAttribute<FilterAttribute>();**//This returns the attr instance
            IEnumerable<PropertyInfo> filterProperties = p.PropertyType.GetRuntimeProperties();

            foreach (PropertyInfo p1 in filterProperties)
            {
                **FilterAttribute filterAttr1 = p1.GetCustomAttribute<FilterAttribute>();**//But not this one, i get null





Aucun commentaire:

Enregistrer un commentaire