Steps Involved:
1. Open Visual Studio 2013 (Run as administrator).
2. Go to File=> New => Project.
3. Select Console Application in the Visual C# node from the installed templates.
4. Enter the Name and click on Ok.
5. In the solution explorer, right click on References folder and then click on Add Reference.
6. Add the following assemblies from 15 hive (C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\ISAPI).
a. Microsoft.SharePoint.Client.dll
b. Microsoft.SharePoint.Client.Runtime.dll
c. Microsoft.SharePoint.Client.Taxonomy.dll
7. Open Program.cs file and replace the code with the following
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.Taxonomy;
using System.Xml;
using System.IO;
namespace IdentifyMetadataColumns
{
class Program
{
static void Main(string[] args)
{
ClientContext context = new ClientContext("http://sp2dev/en-us");
ListCollection listsColl = context.Web.Lists;
context.Load(listsColl);
context.ExecuteQuery();
XmlTextWriter writer = new XmlTextWriter("recordValues.xml", null);
writer.Formatting = Formatting.Indented;
writer.WriteStartElement("lists");
foreach(List list in listsColl){
writer.WriteStartElement("list");
writer.WriteAttributeString("listName", list.Title);
Console.WriteLine(list.Title + ":");
FieldCollection collField = list.Fields;
context.Load(collField, fields => fields.Include(field => field.Title));
context.ExecuteQuery();
foreach (Field field in collField)
{
//if (field is TaxonomyField) {
// Console.WriteLine("success---------");
// return;
//}
TaxonomyField taxFiled = field as TaxonomyField;
if (taxFiled != null)
{
try
{
context.Load(taxFiled);
context.ExecuteQuery();
if (taxFiled.AllowMultipleValues)
{
//Multiple
Console.WriteLine("\t" + taxFiled.InternalName + "\t"+"Multiple");
writer.WriteStartElement("MetadataColumn");
writer.WriteAttributeString("name", taxFiled.InternalName);
writer.WriteElementString("values", "Multiple");
writer.WriteEndElement();
}
else
{
//Single
Console.WriteLine("\t" + taxFiled.InternalName + "\t" + "Single");
writer.WriteStartElement("MetadataColumn");
writer.WriteAttributeString("name", taxFiled.InternalName);
writer.WriteElementString("values", "Single");
writer.WriteEndElement();
}
continue;
}//try end
catch (ArgumentException exception)
{
Console.WriteLine("fail");
throw new ArgumentOutOfRangeException(Resources.GetString("AllFieldsNotFetched"), exception);
}
}//if end
}//foreach field end
writer.WriteEndElement();
}//foreach list end
writer.WriteEndElement();
writer.Close();
Console.ReadLine();
}
}
}