public string GetXml()
{
if (Type == SPFieldType.Choice)
{
return string.Format(GetXmlTemplate(Type, TypeAsString), Id.ToString("B"), InternalName, DisplayName, Description, Group, ColumnChoices);
}
else
{
return string.Format(GetXmlTemplate(Type, TypeAsString), Id.ToString("B"), InternalName, DisplayName, Description, Group);
}
}
/// <summary> /// Checks if a site column exists in a site and creates it if it doesn't exist. /// </summary> /// <param name="site">The site to check.</param> /// <param name="columnDetail">The details of the site column.</param> /// <param name="isNewColumn">A boolean that is set to true, if a new column is created; otherwise, it is set to false.</param> /// <returns>A SPField object that references an existing or newly created site column.</returns> public static SPField EnsureSiteColumn(this SPWeb site, ColumnDetails columnDetail, ref bool isNewColumn) { isNewColumn = false; SPField column = null; if (!site.Fields.ContainsField(columnDetail.InternalName)) { site.Fields.AddFieldAsXml(columnDetail.GetXml()); column = site.Fields.GetFieldByInternalName(columnDetail.InternalName); isNewColumn = true; } else { column = site.Fields.GetFieldByInternalName(columnDetail.InternalName); } return column; }