獲取以下參數運行異常(「Expression must be readableParameter name:right」)運行此代碼並不能找出原因。Expression.Assign Right屬性必須可讀
此代碼旨在創建一個委託來獲取XmlNode中的屬性並將它們映射到對象上的屬性。
private static Action<XmlNode, T> createMapperFunction() {
var props = typeof(T).GetProperties().ToArray();
var xmlNodeParameter = Expression.Parameter(typeof(XmlNode), "x");
var resultParameter = Expression.Parameter(typeof(T), "result");
// Expression.
var exprList = new List<Expression>();
for (int i = 0 ; i < props.Length ; i++) {
if (props[i].PropertyType == typeof(string))
exprList.Add(Expression.Assign(Expression.Property(resultParameter,props[i].Name),
Expression.Property(
Expression.Property(
Expression.Property(xmlNodeParameter,"Attributes"), "ItemOf", Expression.Constant(props[i].Name)),"InnerText")));
}
var body = Expression.Block(exprList);
return Expression.Lambda<Action<XmlNode, T>>(body, xmlNodeParameter, resultParameter).Compile();
}
您能否通過提供*哪一行*引起此異常來幫助我們? – 2012-07-31 15:30:32
這不會傷害你的大表情分成多個表情。使代碼更易於閱讀和調試。 – CodesInChaos 2012-07-31 15:41:45
其表達式。引發異常的分配。 儘快編輯帖子,我有機會並將其分成多行。 – Wegged 2012-07-31 15:46:33