Estoy usando la API administrada de servicios web de Exchange para trabajar con tareas (Exchange 2007 SP1). Puedo crearlos bien. Sin embargo, cuando intento hacer actualizaciones, funciona para todos los campos, excepto para el campo .Body. Siempre que trato de acceso (lectura/actualización) ese campo, se da el siguiente error:Error al intentar leer/actualizar el .Body de una tarea mediante la API administrada de EWS: "Debe cargar o asignar esta propiedad antes de poder leer su valor".
"You must load or assign this property before you can read its value."
El código que estoy utilizando el siguiente aspecto:
//impersonate the person whose tasks you want to read
Me.Impersonate(userName); //home-made function to handle impersonation
//build the search filter
Exchange.SearchFilter.SearchFilterCollection filter = New Exchange.SearchFilter.SearchFilterCollection();
filter.Add(New Exchange.SearchFilter.IsEqualTo(Exchange.TaskSchema.Categories, "Sales"));
//do the search
EWS.Task exTask = esb.FindItems(Exchange.WellKnownFolderName.Tasks, filter, New Exchange.ItemView(Integer.MaxValue));
exTask.Subject = txtSubject.Text; //this works fine
exTask.Body = txtBody.Text; //This one gives the error implying that the object isn't loaded
Lo extraño es que, la inspección de la bolsa de propiedades muestra que el objeto contiene 33 propiedades, pero {Cuerpo} no es una de ellas. Esa propiedad parece ser heredada de la clase base .Item, o algo así.
Entonces, ¿necesito volver a cargar el objeto como tipo Artículo? ¿O volver a cargarlo a través de .Bind o algo así? Tenga en cuenta que necesito hacer esto con miles de elementos, por lo que la eficiencia sí me importa.
trabajó como un encanto! – NoReceipt4Panda