Agregar un registro a una lista de sharepoint con web services

wsList.Lists list = new wsList.Lists();

list.Credentials = new NetworkCredential("usuario", "password", "dominio");

XmlNode listXml = list.GetList("Cursos");
string s = "<Batch OnError='Continue'>" +
           "<Method ID='1' Cmd='New'>" +
           "<Field Name='id_curso'>1234</Field>" +
           "<Field Name='nombre_curso'>prueba1</Field>" +
           "</Method>" +
           "</Batch>";
XmlDocument xmlDoc = new XmlDocument();


xmlDoc.InnerXml = s; 
  
XmlNode result = list.UpdateListItems("Cursos", xmlDoc); 

 
Notas: se pueden incluir tantos "Method" como sean necesarios. Cada ID debe ser único (en el ej. hay una sola sentencia, con id 1 si se agregan mas definirlas con id 2, 3, etc)
 
en el xml llamado result, queda el resultado de la ejecución batch (si se produjo algún error aparece allí)

Se pueden utilizar las credenciales del usuario logueado mediante esta sentencia:

list.Credentials = System.Net.CredentialCache.DefaultCredentials;