La forma estandar de coger la lista de campos del tipo de contenido no vale porque el ContentType es null en esta clase de elementos…
La forma más fácil para ver qué tenemos es mirar en el XML del elemento.
static List<string> ExcludedFields = new List<string> { "z", "ows_ServerRedirected", "ows_FileRef", "ows_PermMask", "ows_FSObjType", "ows__Level", "ows__ModerationStatus" }; /// <summary> /// Gets a dictionary with the available fields and its values. /// </summary> public static Dictionary<string, string> getAvailableFields(this SPListItem item) { XElement row = XElement.Parse(item.Xml); Dictionary<string, string> Fields = new Dictionary<string, string>(); foreach (XAttribute field in row.Attributes()) { if (!ExcludedFields.Contains(field.Name.LocalName)) Fields.Add(field.Name.LocalName.Substring(4), field.Value); } return Fields; }
Usando esto he logrado reducir el tráfico que generaba un método de un web service en un 65%.
No hay comentarios:
Publicar un comentario