0

次のコード行があるとします。

context.Load(itemCollection, item => item.Include(i => i["Title"], i => i["Name"]));

item.Include()上記のようにハードコーディングする代わりに、関数にパラメーターを動的に指定する方法はありますか?

TitleNameDescriptionなどのオブジェクトから取得したいプロパティをユーザーが選択できるようにすることが理想的です。

参考までに、ここに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);
}
4

3 に答える 3

2

テストに必要なセットアップがありませんが、このようなものは動作しますか?

String[] keys = ...;
context.Load(   itemCollection
              , item => item
                        .Include(keys
                        .Select(key => { i => i[key] })
                        .ToArray()
            );
于 2013-03-13T00:47:53.297 に答える
0

次の構文を使用します (JavaScript では機能しますが、C# ではテストしていません)。

context.load(this.list, 'Include(Title, Name)');

'Include(Title, Name)'は文字列であり、ユーザー入力に基づいて生成する方が簡単です。

this.list 以前にロードされた共有ポイント リストを参照します。

于 2013-03-14T23:19:18.720 に答える
0

この質問の回答をご覧ください。
動的 where 節を作成する際にも同様の問題がありましたが、これが私がそれを回避した方法です。

于 2013-03-13T00:26:21.507 に答える