Check whether the item is in hold in SharePoint 2010

In Shared Documents I have a document "New”, here I am going to check whether the item is in hold or not using SharePoint object model.

  • Open Visual Studio 2010.
  • Create a new console application.
  • Add the following references. 
    • Microssoft.Office.Policy.dll
    • Microsoft.SharePoint.dll
  • Add the following namespaces. 
    • using Microsoft.SharePoint;
    • using Microsoft.Office.RecordsManagement.Holds;
  • Replace the code with the following.

using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
Microsoft.SharePoint;
using
System.Xml;
using
Microsoft.SharePoint.Administration;
using
Microsoft.Office.RecordsManagement.Holds;
namespace
Holds
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite site = new SPSite("http://servername:22222/sites/Test/"))
            {
                using (SPWeb web = site.RootWeb)
                {
                    SPList list = web.Lists["Shared Documents"];
                    foreach (SPListItem item in list.Items)
                    {
                        if (item.DisplayName.ToString() == "New")
                        {
                            if (Hold.IsItemOnHold(item))
                            {
                                Console.WriteLine(item.DisplayName + " is on hold");
                                Console.ReadLine();
                            }
                        }
                    }
                }
            }
        }
    }
}