Blog del CIIN

Blog del Centro de Innovación en Integración de Cantabria

This Blog

Syndication

Search

Tags

Community

Email Notifications

Archives

Enlaces Recomendados

SharePoint 2010: Cómo leer todos los metadatos de una lista con el modelo de objetos en cliente!

Si necesitáis leer todos los metadatos de los elementos de una lista o biblioteca con el modelo de objetos en cliente, SharePoint nos lo pone relativamente fácil a través de clases equivalentes a las que tenemos en el lado del servidor. En este caso, el código necesario sería:

   1: using (MO_NET.ClientContext context = new MO_NET.ClientContext("http://<MiSitioSP>"))
   2: {
   3:     context.AuthenticationMode = 
   4:         MO_NET.ClientAuthenticationMode.Default;
   5:     context.Credentials = 
   6:         new NetworkCredential("Usuario", "Contraseña", "Dominio");
   7:     //context.FormsAuthenticationLoginInfo = new MO_NET.FormsAuthenticationLoginInfo(loginName, password);
   8:  
   9:     //Definición de operaciones
  10:     MO_NET.List oList = context.Web.Lists.GetByTitle("Infraestructura");
  11:     MO_NET.CamlQuery camlQuery = new MO_NET.CamlQuery();
  12:     camlQuery.ViewXml = "<View><RowLimit>100</RowLimit></View>";
  13:     MO_NET.ListItemCollection collListItem = oList.GetItems(camlQuery);
  14:     MO_NET.ClientObjectPrototype allFields = oList.Fields.RetrieveItems();
  15:  
  16:     //Especificar operaciones
  17:     allFields.Retrieve();
  18:     context.Load(collListItem);
  19:  
  20:     //Ejecutar operaciones
  21:     context.ExecuteQuery();
  22:  
  23:     foreach (MO_NET.ListItem oListItem in collListItem)
  24:     {
  25:         foreach (MO_NET.Field field in oList.Fields)
  26:         {
  27:             try
  28:             {
  29:                 Console.WriteLine(field.InternalName + "" +
  30:                     oListItem[field.InternalName]);
  31:             }
  32:             catch (Exception ex)
  33:             {                            
  34:                 //throw;
  35:                 continue;
  36:             }
  37:         }
  38:     }
  39: }

Fijaros que el código no tiene nada del otro mundo:

  • Creamos un contexto de cliente.
  • Definimos las operaciones a realizar. En este caso, lo más interesante es como accedemos a la colección de campos de una lista a través del método RetrieveItems(). Fijaros que este caso inicializamos la correspondiente colección mediante el método Retrieve.
  • A partir de aquí, hacemos un ExecuteQuery() y a iterar. Como habrá ciertos campos no inicializados, en el bucle interno he puesto un Try / Catch un poco guarro (por el Continue) para que por cada elemento siga iterando a pesar de encontrarse alguna columna no inicializada.

La salida por pantalla correspondiente es la siguiente:

image

Published 14/7/2012 9:45 por Juan Carlos González Martín

Comparte este post: