2016-03-22 16 views
2

私は、WCFサービスの1つでSharePoint SDKを使用しています。Sharepoint ClientContextのサービスでの使用

SharePointからバイト配列(ドキュメント)を取得するには、SDKのClientContextクラスを使用します。 SharePointへの呼び出しはすべて、SharePointConnectorというカスタムクラス(一種のリポジトリパターンのような)にラップされています。

私の目標は、インターフェイスISharePointConnectorを使用してwcfサービスにSharePointConnectorクラスを挿入することです。

私の質問は:

  1. 使用してブロックに包まれて、私はSharePointConnectorのコンストラクタでCLIENTCONTEXTを作成する必要がありますか、呼び出しごとにそれを使用する必要がありますか?私には心配しています:それはClientContextを作成するための高価な呼び出しですか? clientContextメンバ変数の同じインスタンスに対して複数の呼び出しが行われた場合のスレッドセーフですか?
  2. 私はどの時点でClientContextのコンストラクタで使用できるようにURLを登録する必要がありますか?

コンストラクタでClientContextインスタンスを作成して実装すると、DIコンテナによるコンストラクタの挿入が原因でClientContextのインスタンスを作成するために必要なURLを取得するのが難しいことに注意してください。

答えて

1

私は主に二つの理由から、非常にあなたは、メソッドの範囲内でClientContextを使用することをお勧めします(または、あなたのケースであるものは何でも通話)と、コンストラクタでそれをinstanciatingないでしょう:

  1. 柔軟性:あなたの状況に合わせてClientContextを調整することができます。
  2. 資源:すでに指摘したように、ClientContextIDisposableインタフェースを実装し、したがって、これはあなたにいくつかのリソースを節約する、それを使用した後にリリース/に配置する必要があります。

    using (ClientContext clientCtx = new ClientContext(siteUrl)){ //do your stuff... }

:あなたはドリルを知っています
関連する問題