如何:创建和检索社交评分

上次修改时间: 2010年3月9日

适用范围: SharePoint Server 2010

本文内容
创建社会性评分
检索社会性评分
对列表启用社会性评分

SocialRatingManager 对象允许您为任何指定的 URL 创建社会性评分。因为 Microsoft SharePoint Server 列表和文档库中的条目可以由 URL 来表示,所以您可以创建和检索这些项目以及任何其他 SharePoint Server 页面的社会性评分。本主题演示如何使用 SocialRatingManager 创建和检索社会性评分,以及如何在自定义应用程序中对 SharePoint Server 启用社会性评分。本主题中的示例假定您已经向 Microsoft Visual Studio 2010 项目添加了以下引用:

  • Microsoft.SharePoint

  • Microsoft.Office.Server

  • Microsoft.Office.Server.UserProfiles

  • System.Web

创建社会性评分

SetRating 重载方法在单个指定 URL 上为当前用户创建单个 SocialRating 对象。社会性评分由一个 URL 和一个 0 - 5 之间的整数组成。它还可以包含评分的字符串标题以及一个 FeedbackData 对象,该对象包含将作为分析数据记录的名称/值对。下面的示例演示如何使用 SocialRatingManager 对指定的 URL 创建单个评分。

Uri myUri = new Uri("URL");
FeedbackData myFeedbackData = new FeedbackData();
myFeedbackData.UserTitle = "employee";
using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
mySocialRatingManager.SetRating(myUri, 5, myFeedbackData);
}

检索社会性评分

GetRating 重载方法检索单个指定 URL 的单个 SocialRating 对象。如果不指定 UserProfile,则该方法返回由当前用户添加到指定 URL 的社会性评分(如果有)。下面的示例演示如何使用 SocialRatingManager 检索指定用户的单个评分。

using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
SocialRating aRating = mySocialRatingManager.GetRating(myUri);
Console.WriteLine(aRating.Url + ": " + aRating.Rating);
}

GetRatings 重载方法检索指定 URL 或用户的所有 SocialRating 对象。如果指定 URL,则该方法返回在当前 SPServerContext 中向该 URL 添加的所有社会性评分。如果指定用户,则该方法返回指定用户添加的所有社会性评分。

using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
UserProfileManager myUserProfileManager = new UserProfileManager(context);
UserProfile myUserProfile = myUserProfileManager.GetUserProfile(false);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
SocialRating[] ratings = mySocialRatingManager.GetRatings(myUserProfile);
Console.WriteLine("Ratings for user:");
foreach (SocialRating rating in ratings)
{
   Console.WriteLine(rating.Url + ": " + rating.Rating);
}
}

对列表启用社会性评分

可以使用列表和文档库设置对应的用户界面,对列表和文档库启用平均评分字段和评分计数字段。这两个字段可用作网站栏,您可以通过在列表或库设置中启用项目评分将网站栏添加到任何列表或文档库中。下面的示例演示如何通过在自定义应用程序中使用代码对任意列表启用这些字段。

public void AddRatingsFields(SPList list)
{
    //Add the average rating field.
    SPField averageRatingField = list.ParentWeb.AvailableFields[new Guid("5a14d1ab-1513-48c7-97b3-657a5ba6c742")];
    list.Fields.AddFieldAsXml(averageRatingField.SchemaXml, true, SPAddFieldOptions.AddToAllContentTypes | SPAddFieldOptions.AddFieldToDefaultView);

    //Add the rating count field.
    SPField ratingCountField = list.ParentWeb.AvailableFields[new Guid("b1996002-9167-45e5-a4df-b2c41c6723c7")];
    list.Fields.AddFieldAsXml(ratingCountField.SchemaXml, true, SPAddFieldOptions.AddToAllContentTypes | SPAddFieldOptions.AddFieldToDefaultView);
}

请参阅

引用

Microsoft.Office.Server.SocialData

概念

如何:创建和检索社交标记

如何:创建和检索社交注释