共有ポイントのルートにあるリストの数を単純に一覧表示するコンソール アプリを作成しようとしています。
次のコードを使用して実行しようとしましたが、オブジェクト SPContext.Current が null です。Web オブジェクトを取得する方法についてのアイデアはありますか?
SPWeb web = SPContext.Current.Site.OpenWeb("http://localhost") ;
共有ポイントのルートにあるリストの数を単純に一覧表示するコンソール アプリを作成しようとしています。
次のコードを使用して実行しようとしましたが、オブジェクト SPContext.Current が null です。Web オブジェクトを取得する方法についてのアイデアはありますか?
SPWeb web = SPContext.Current.Site.OpenWeb("http://localhost") ;
Nat の投稿に少し追加し
ます。SharePoint WebApp のように重要ではない場合でも、すべての SPWeb および SPSite オブジェクトを破棄することをお勧めします。
ですから、良い習慣を守ってください:
using (SPSite site = new SPSite(weburl))
{
using (SPWeb web = site.OpenWeb())
{
// bla bla
}
}
注: weburl を SPSite コンストラクターに直接渡すことができるため、OpenWeb は指定された web を開きます。
SPSite spSite = new SPSite("http://myurl");
SPWeb spMySite = spSite.Allwebs["mysite"];
SPWeb spRootsite = spsite.RootWeb;
コンソール アプリは、通常どおりサーバー上でのみ実行されます。また、使用される URL http://myurlはページへの URL にすることができ、SPSite オブジェクトが作成されます。たとえば、 http://myurl/mysite/pages/default.aspxは有効な SPSite オブジェクトを取得します。
SPSite.OpenWeb()を使用する方法は他にもいくつかあります...
SPWebオブジェクトのGUIDを追跡する場合:
site.OpenWeb(webUid);
Webのサーバーまたはサイトの相対URLまたはタイトルを使用して、詳細については、MSDN SPSite.OpenWeb(string)を参照してください。
site.OpenWeb(relativeUrl);
site.OpenWeb(title);
正確な相対URLを使用し、SPSite.OpenWeb(string)が使用する巧妙なものを回避します。
site.OpenWeb(relativeUrl, true);