[英]How to Declare an Empty ClientContext
我正在根據我的 .NET 代碼中的 SharePoint 版本實施新的身份驗證方法,這可能會因 URL 的不同而有所不同。 但是,我不確定如何聲明一個空的ClientContext
變量。
下面是我的代碼片段:
Uri lUri = new Uri(pSiteUrl);
//To declare an empty ClientContext variable here//
if (pSiteUrl.StartsWith(ConfigurationManager.AppSettings["New_URL"]))
{
ClientContext lClientContext = SPOClientContext.GetAuthenticatedContext(pSiteUrl);
}
else
{
ClientContext lClientContext = new ClientContext(pSiteUrl);
}
//lClientContext does not exists if it is not initialised outside the if-else statement above
Folder lRootFolder = lClientContext.Web.GetFolderByServerRelativeUrl(lUri.AbsolutePath + pFolderPath);
我不確定這是否有任何幫助,但我會盡力做到最好:)。
ClientContext 構造函數必須有一些參數 -> Link
所以你可以做的只是創建未初始化的 ClientContext 然后檢查它是否不為空......這樣的事情應該做(基於你的代碼示例):
ClientContext lClientContext = null;
if (pSiteUrl.StartsWith(ConfigurationManager.AppSettings["New_URL"]))
{
lClientContext = SPOClientContext.GetAuthenticatedContext(pSiteUrl); // not sure what actually this is??
}
else
{
lClientContext = new ClientContext(pSiteUrl);
}
if (lClientContext != null)
{
Folder lRootFolder = lClientContext.Web.GetFolderByServerRelativeUrl(lUri.AbsolutePath + pFolderPath);
lClientContext.Dispose();
}
... 請記住 ClientContext 應該總是在最后處理
也許一些更清潔的選項會是這樣的(這樣你就不需要在最后考慮 Dispose() 了)
public void DoSomething()
{
string pSiteUrl = "";
string somePath = "";
using (var lClientContext = CreateClientContext(pSiteUrl))
{
Folder lRootFolder = lClientContext.Web.GetFolderByServerRelativeUrl(somePath);
}
}
private ClientContext CreateClientContext(string uri) =>
uri.StartsWith(ConfigurationManager.AppSettings["New_URL"]) ?
SPOClientContext.GetAuthenticatedContext(uri) :
new ClientContext(uri);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.