Simplify CurveData data structures
This commit is contained in:
@@ -10,37 +10,15 @@ namespace LeafWeb.Core.Utility
|
||||
{
|
||||
public static class ReflectionExtensions
|
||||
{
|
||||
public static string GetPropertyDisplayName<T>(Expression<Func<T, object>> propertyExpression)
|
||||
{
|
||||
var memberInfo = GetPropertyInformation(propertyExpression.Body);
|
||||
if (memberInfo == null)
|
||||
{
|
||||
throw new ArgumentException("No property reference expression was found.", nameof(propertyExpression));
|
||||
}
|
||||
|
||||
var attr = memberInfo.Attributes<DisplayNameAttribute>().SingleOrDefault();
|
||||
return attr == null ? memberInfo.Name : attr.DisplayName;
|
||||
}
|
||||
|
||||
public static MemberInfo GetPropertyInformation(Expression propertyExpression)
|
||||
{
|
||||
Debug.Assert(propertyExpression != null, "propertyExpression != null");
|
||||
var memberExpr = propertyExpression as MemberExpression;
|
||||
if (memberExpr == null)
|
||||
{
|
||||
var unaryExpr = propertyExpression as UnaryExpression;
|
||||
if (unaryExpr != null && unaryExpr.NodeType == ExpressionType.Convert)
|
||||
{
|
||||
memberExpr = unaryExpr.Operand as MemberExpression;
|
||||
}
|
||||
}
|
||||
|
||||
if (memberExpr != null && memberExpr.Member.MemberType == MemberTypes.Property)
|
||||
{
|
||||
return memberExpr.Member;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
public static string GetDescription(this Enum value)
|
||||
{
|
||||
return
|
||||
value
|
||||
.GetType()
|
||||
.GetMember(value.ToString())
|
||||
.FirstOrDefault()
|
||||
?.GetCustomAttribute<DescriptionAttribute>()
|
||||
?.Description;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user