【发布时间】:2017-03-22 21:39:06
【问题描述】:
我有一个基类 (BankAccount),然后它有一个派生类型的 UkBankAccount。
我正在获取子类的字段列表作为表达式:
var properties = new Expression<Func<UkBankAccount, object>>[] {
x => x.Status,
x => x.Name,
x => x.SortCode,
x => x.AccountNumber
};
然后想将其转换为类型BankAccount,这样我就可以通用地使用它。我试过了:
updatedProperties = properties.ToList()
.Cast<Expression<Func<BankAccount, object>>>()
.ToArray();
但这会引发无效的强制转换异常。我应该能够在表达式中进行转换吗?
谢谢
【问题讨论】:
-
为什么你认为这应该有效?您也不能将
List<UkBankAccount>分配给List<BankAccount>。 -
如果这些字段仅在子类型上,尝试在超类型对象上调用这些属性有什么意义?
标签: c#