/// <summary> /// Create Site Columns using field xml declaration /// </summary> public static void CreateSiteColumns(ClientContext clientContext, string[] fieldXMLDefinations) { var fields = clientContext.Web.Fields; foreach (string fieldXML in fieldXMLDefinations) { Regex matchGuid = new Regex("{\\S*}"); var match = matchGuid.Match(fieldXML); if (match.Success) { var fieldID = new Guid(match.Value); var field = CSOMUtil.getFieldById(clientContext, fieldID); // Check if the field exists if (field == null) { clientContext.Web.Fields.AddFieldAsXml(fieldXML, true, AddFieldOptions.AddFieldInternalNameHint); clientContext.ExecuteQuery(); } } } }
/// <summary> /// Remove Site Columns /// </summary> public static void RemoveSiteColumns(ClientContext clientContext, string[] fieldXMLDefinations) { var fields = clientContext.Web.Fields; foreach (string fieldXML in fieldXMLDefinations) { Regex matchGuid = new Regex("{\\S*}"); var match = matchGuid.Match(fieldXML); if (match.Success) { var fieldID = new Guid(match.Value); var field = CSOMUtil.getFieldById(clientContext, fieldID); // Check if the field exists // and can be deleted if (field != null && field.CanBeDeleted) { field.DeleteObject(); clientContext.ExecuteQuery(); } } } }