我正在获取表达式 x=>x.SomeAttribute
属性可以是任何类型。 我正在从表达式中获取属性类型。 对于普通的原始属性,它会给我正确的值,如 int、string...等。 但是对于枚举,它给我 MyEnum。 我想为 Enum 执行 getExpression 方法。那么要传递什么作为 TResult。
public enum TestEnum
{
first = 0,
second = 1
}
Public Class A
{
public int TestInt {get;set;}
public string TestString {get;set;}
public TestEnum EnumDemo { get; set; }
}
x=>x.TestInt;
getExpression<TSource, int>(expression)// when SomeAttribute is integer
x=>x.TestString;
getExpression<TSource, string>(expression) // when SomeAttribute is string
x=>x.EnumDemo ;
getExpression<TSource, Enum>(expression) // when SomeAttribute is Enum, It reruns null
private Expression<Func<TSource, TResult>> getExpression<TSource, TResult>(Expression expression)
{
var x = expression as Expression<Func<TSource, TMember>>;
return x;
}
最佳答案
关于c# - 存储到表达式中时枚举的类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27776594/