c# - Getting model type from expression -
i'm trying use reflection model type. far able type of property. when tried use expression model type, i'm getting null reference property.
expression this,
model => model.property and in function,
//i'm passing model parameter memberexpression expbody = expression.body memberexpression; model.gettype().getproperty(expbody.member.name.tostring())); is possible this?
memberexpression expbody = expression.body memberexpression; expbody.type.getproperty(expbody.member.name.tostring())); i tried this, not working.
if assume expression lambda expression parameter model, following produces behaviour expect:
expression<func<model, string>> expression = model => model.somestringproperty; type modeltype = expression.parameters[0].type; memberexpression expbody = expression.body memberexpression; propertyinfo p = modeltype.getproperty(expbody.member.name); assert.notnull(p); note modeltype.getproperty(expbody.member.name) unnecessary. it's preferable extract member memberexpression in order avoid ambiguity:
propertyinfo p = (propertyinfo)expbody.member;
Comments
Post a Comment