Sharepoint 2013 无法使用CSOM获取功能的DisplayName

Sharepoint 2013 无法使用CSOM获取功能的DisplayName,sharepoint-2013,csom,Sharepoint 2013,Csom,我正在尝试使用CSOM获取网站集上所有可用功能的名称。下面的代码可以很好地获取所有功能的列表,但我无法获取DisplayName属性 ClientContext clientContext = new ClientContext(URL); Web oWebsite = clientContext.Web; clientContext.Load(oWebsite, website => website.MasterUr

我正在尝试使用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);
            }
下面是一个示例,它解释了如何获取
DisplayName
,但它对我不起作用

我已经升级了SP2013的SDK,但仍然无法找到此属性。你能告诉我这是否可能吗

无法访问,因为您不是从服务器请求,请更换该行:

clientContext.Load(webFeatures, fcol => fcol.Include(f => f.DefinitionId));
与:

表达式
fcol.Include(f=>f.DisplayName,f=>f.DefinitionId)
构造用于获取的查询
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();
}
更新

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();
}
  • 如果您的目标是SharePoint2010,则无法通过CSOM API检索
    Feature.DisplayName属性
    ,因为它不会公开
  • 对于SharePoint2013确保
  • 对于SharePoint联机请确保
无法访问,因为您不是从服务器请求,请更换线路:

clientContext.Load(webFeatures, fcol => fcol.Include(f => f.DefinitionId));
与:

表达式
fcol.Include(f=>f.DisplayName,f=>f.DefinitionId)
构造用于获取的查询
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();
}
更新

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();
}
  • 如果您的目标是SharePoint2010,则无法通过CSOM API检索
    Feature.DisplayName属性
    ,因为它不会公开
  • 对于SharePoint2013确保
  • 对于SharePoint联机请确保

我也有类似的情况,SP 2013 CSOM(v15)似乎不可能,因为即使在最新(当前)的库Microsoft.SharePoint.CLient.dll 15.0.5127.1000(从4.2019 CU开始)中,此属性也不可用。尽管在中提到了它的存在。

我也有类似的情况,但SP 2013 CSOM(v15)似乎不可能实现,因为即使在最新(当前)的库Microsoft.SharePoint.CLient.dll 15.0.5127.1000(从4.2019 CU开始)中,此属性也不可用。尽管我提到它在那里。

谢谢瓦迪姆。我已经试过了,没有把它包括在我的问题中。当我包含
f=>f.DisplayName
时,会显示错误。错误消息:
无法将lambda表达式转换为“System.Linq.Expressions.expression[]”类型,因为它不是委托类型
@Ishan,您似乎在项目中引用CSOM v14库(有关详细信息,请参阅更新部分)。由于问题已标记为SharePoint 2013,请确保参考了CSOM库v15。我最初也有同样的感觉,因此我再次下载了CSOM v15,它要求提供修复选项,这意味着我的计算机上已经安装了v15库。我正在使用v16并连接到sp2016。获取包含关键字的错误。您能告诉我需要包含什么名称空间来修复错误吗。错误消息:“FeatureCollection”不包含“Include”的定义,并且找不到接受“FeatureCollection”类型的第一个参数的扩展方法“Include”(是否缺少using指令或程序集引用?)。我已经试过了,没有把它包括在我的问题中。当我包含
f=>f.DisplayName
时,会显示错误。错误消息:
无法将lambda表达式转换为“System.Linq.Expressions.expression[]”类型,因为它不是委托类型
@Ishan,您似乎在项目中引用CSOM v14库(有关详细信息,请参阅更新部分)。由于问题已标记为SharePoint 2013,请确保参考了CSOM库v15。我最初也有同样的感觉,因此我再次下载了CSOM v15,它要求提供修复选项,这意味着我的计算机上已经安装了v15库。我正在使用v16并连接到sp2016。获取包含关键字的错误。您能告诉我需要包含什么名称空间来修复错误吗。错误消息:“FeatureCollection”不包含“Include”的定义,并且找不到接受“FeatureCollection”类型的第一个参数的扩展方法“Include”(是否缺少using指令或程序集引用?),我也面临同样的问题。任何决议@Ishan?@Karthik它只适用于v16I,我也面临同样的问题。任何分辨率@Ishan?@Karthik仅适用于v16