【发布时间】:2013-03-12 23:57:14
【问题描述】:
假设我有以下代码行:
context.Load(itemCollection, item => item.Include(i => i["Title"], i => i["Name"]));
有什么方法可以动态指定item.Include() 函数的参数,而不是像上面那样对它们进行硬编码?
理想情况下,我希望允许用户选择他们想要检索对象的属性,例如 Title、Name、Description 等。
仅供参考,这是ClientContext.Load 函数。这个函数来自Microsoft.SharePoint.Client.dll
public void Load<T>(T clientObject, params Expression<Func<T, object>>[] retrievals) where T : ClientObject
{
if ((object) clientObject == null)
throw new ArgumentNullException("clientObject");
ClientAction.CheckActionParameterInContext(this, (object) clientObject);
DataRetrieval.Load<T>(clientObject, retrievals);
}
【问题讨论】:
-
是的,我一直在为 MS CRM 库制作这样的功能。您想调查
public void MyMethod<t>(Func<Expression<t,object>> expression) where t :在表达式中扩展您想要的类型。无论如何,在 Func 上搜索更多示例
标签: c# .net c#-4.0 .net-4.0 lambda