c# - 如何声明一个空的 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 构造函数必须有一些参数 ->链接
所以你可以做的只是创建未初始化的 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);
推荐阅读
- algorithm - 计算满足要求的可能排列的数量
- python - 有什么方法可以缩短此日期的长度而无需运行 date()?
- xslt - 当 XML 文档中有颜色时,如何在 XSL 中为 Div 添加颜色
- python - 使用 pyinstaller 编译为 .exe 后,PyQt5 应用程序中缺少图标
- hdf5 - 将 ROOT 树转换为 HDF5
- excel - Excel 中的平均时间值 - 格式 mm:ss
- uinavigationcontroller - 导航控制器中的两个不同的自定义转换
- java - 调用非静态方法的 Java 静态引用变量
- salesforce - 使用预定义的 DocuSign 模板动态创建信封
- c++ - 在 C++ 中循环遍历数组时遇到问题