我正在尝试使用CSOM获取网站集中可用的所有功能的名称。下面的代码可以很好地获取所有功能的列表,但我无法获得DisplayName
属性。
ClientContext clientContext = new ClientContext(URL);
Web oWebsite = clientContext.Web;
clientContext.Load(oWebsite, website => website.MasterUrl, website => website.CustomMasterUrl, website => website.Features);
clientContext.ExecuteQuery();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Authenticated!");
Console.ForegroundColor = defaultForeground;
var webFeatures = clientContext.Web.Features;
clientContext.Load(webFeatures, fcol => fcol.Include( f => f.DefinitionId));
clientContext.ExecuteQuery();
foreach (var f in webFeatures)
{
Console.WriteLine(f.DefinitionId);
}
这是一个post,解释了如何获取DisplayName
,但它不适用于我。
我已针对SP2013升级了SDK,但仍无法找到此属性。如果可能的话,你能告诉我吗?
答案 0 :(得分:0)
Feature.DisplayName property
无法访问,因为您没有从服务器请求它,请替换以下行:
clientContext.Load(webFeatures, fcol => fcol.Include(f => f.DefinitionId));
使用:
clientContext.Load(webFeatures, fcol => fcol.Include(f => f.DisplayName,f => f.DefinitionId));
表达式
fcol.Include(f => f.DisplayName,f => f.DefinitionId)
构造获取features的查询 包含Feature.DefinitionId
和Feature.DisplayName
个属性。
示例强>
using (var ctx = new ClientContext(url))
{
var webFeatures = ctx.Web.Features;
ctx.Load(webFeatures, fcol => fcol.Include(f => f.DisplayName,f => f.DefinitionId));
ctx.ExecuteQuery();
}
<强>更新强>
Feature.DisplayName property
,因为Feature Class
未公开它。v15
is referenced v16
is referenced 答案 1 :(得分:0)
我有一个类似的情况,看来SP 2013 CSOM(v15)根本不可能,因为即使在最新的(当前)库Microsoft.SharePoint.CLient.dll 15.0.5127.1000(来自4.2019 CU)中,此属性也是无法使用。尽管在documentation中提到它在那里。