static private InstancePropertyNotDefinedForType ( object p0, object p1, string paramName ) : |
||
p0 | object | |
p1 | object | |
paramName | string | |
return |
/// <summary> /// Creates a <see cref="MemberExpression"/> accessing a property. /// </summary> /// <param name="expression">The containing object of the property. This can be null for static properties.</param> /// <param name="propertyName">The property to be accessed.</param> /// <returns>The created <see cref="MemberExpression"/>.</returns> public static MemberExpression Property(Expression expression, string propertyName) { RequiresCanRead(expression, nameof(expression)); ContractUtils.RequiresNotNull(propertyName, nameof(propertyName)); // bind to public names first PropertyInfo pi = expression.Type.GetProperty(propertyName, BindingFlags.Instance | BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.FlattenHierarchy) ?? expression.Type.GetProperty(propertyName, BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.IgnoreCase | BindingFlags.FlattenHierarchy); if (pi == null) { throw Error.InstancePropertyNotDefinedForType(propertyName, expression.Type, nameof(propertyName)); } return(Property(expression, pi)); }
public static ConditionalMemberCSharpExpression ConditionalProperty(Expression expression, string propertyName) { RequiresCanRead(expression, nameof(expression)); ContractUtils.RequiresNotNull(propertyName, nameof(propertyName)); var type = expression.Type.GetNonNullReceiverType(); var property = type.GetProperty(propertyName, BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.Public | BindingFlags.FlattenHierarchy); if (property == null) { property = type.GetProperty(propertyName, BindingFlags.IgnoreCase | BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.FlattenHierarchy); } if (property == null) { throw LinqError.InstancePropertyNotDefinedForType(propertyName, type); } return(ConditionalProperty(expression, property)); }