콘솔 앱에서 SPWEB 객체를 어떻게 인스턴스화합니까?
-
08-07-2019 - |
문제
SharePoint 루트에 목록 수를 나열하는 콘솔 앱을 작성하려고합니다.
다음 코드를 사용하여 시도했지만 객체 spcontext.current는 null입니다. 웹 객체를 얻는 방법에 대한 아이디어가 있습니까?
SPWeb web = SPContext.Current.Site.OpenWeb("http://localhost") ;
해결책
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 객체를 얻을 수 있습니다.
다른 팁
Nat의 게시물에 작은 것을 추가하는 것만 :
SharePoint WebApp에서와 같이 중요하지 않더라도 모든 SPWEB 및 SPSITE OBJET을 폐기하는 것이 좋습니다.
좋은 습관을 유지하십시오.
using (SPSite site = new SPSite(weburl))
{
using (SPWeb web = site.OpenWeb())
{
// bla bla
}
}
참고 : WebURL을 직접 SPSITE 생성자로 전달할 수 있으므로 OpenWeb은 주어진 웹을 열게됩니다.
spsite.openweb ()를 사용할 수있는 몇 가지 다른 방법이 있습니다 ...
spweb 객체의 안내를 추적하면 :
site.OpenWeb(webUid);
웹 서버 또는 사이트 상대 URL 또는 제목을 사용하여 msdn spsite.openweb (String) 자세한 사항은:
site.OpenWeb(relativeUrl);
site.OpenWeb(title);
정확한 상대 URL을 사용하고 spsite.openweb (string)가 사용하는 영리한 물건을 피하십시오.
site.OpenWeb(relativeUrl, true);
제휴하지 않습니다 StackOverflow