Я не уверен, поможет ли это, но я постараюсь сделать все возможное :).
Конструктор ClientContext должен иметь некоторый параметр -> Ссылка
Итак, вы можете просто создать не инициализированный ClientContext, а затем проверить, не было ли оно пустым ... что-то вроде этого должно быть сделано (на основе примера кода You):
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);