c# - Get properties of class by order using reflection -
please refer code
public class : b { [display(name = "initial score code", order =3)] public code { get; set; } [display(name = "initial score code", order =2)] public name{ get; set; } ............ } i need properties of class through order orderattribute of display. have tried code do
var prop = typeof(a) .getproperties() .orderby(p => ((displayattribute)p.getcustomattributes(typeof(displayattribute), true).firstordefault).order); but causes error
object reference not set instance of object
i assumed issue because of property not having "order" property in "displayattribute" .
how handle kind of situation? need order properties though property not having value of order property.
you missing brackets () on firstordefault operator. should deal case when default value returned. suggest select order value before getting first or default value. return 0 properties don't have displayattribute:
var prop = typeof(a) .getproperties() .orderby(p => p.getcustomattributes(typeof(displayattribute), true) .cast<displayattribute>() .select(a => a.order) .firstordefault()); if want properties without displayattribute last, can provide int32.maxvalue default value returned:
.select(a => a.order) .defaultifempty(int32.maxvalue) .first()
Comments
Post a Comment