3

共有ポイントのルートにあるリストの数を単純に一覧表示するコンソール アプリを作成しようとしています。

次のコードを使用して実行しようとしましたが、オブジェクト SPContext.Current が null です。Web オブジェクトを取得する方法についてのアイデアはありますか?

 SPWeb web = SPContext.Current.Site.OpenWeb("http://localhost") ;
4

3 に答える 3

9

Nat の投稿に少し追加し
ます。SharePoint WebApp のように重要ではない場合でも、すべての SPWeb および SPSite オブジェクトを破棄することをお勧めします。
ですから、良い習慣を守ってください:

using (SPSite site = new SPSite(weburl))
{
    using (SPWeb web = site.OpenWeb())
    {
        // bla bla
    }
}

注: weburl を SPSite コンストラクターに直接渡すことができるため、OpenWeb は指定された web を開きます。

于 2008-11-14T06:48:42.200 に答える
4
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 オブジェクトを取得します。

于 2008-11-14T01:59:17.227 に答える
0

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);
于 2008-11-14T17:54:35.007 に答える