Sto utilizzando l'API gestita dai servizi Web di Exchange per lavorare con le attività (Exchange 2007 SP1). Posso crearli bene. Tuttavia, quando provo a fare aggiornamenti, funziona per tutti i campi tranne per il campo .Body. Ogni volta che cerco di accesso (lettura/aggiornamento) quel campo, dà il seguente errore:Errore quando si tenta di leggere/aggiornare il .Body di un'attività tramite EWS Managed API - "È necessario caricare o assegnare questa proprietà prima di poterne leggere il valore."
"You must load or assign this property before you can read its value."
Il codice che sto usando ha questo aspetto:
//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
La cosa strana è che, ispezionando il il sacchetto di proprietà mostra che l'oggetto contiene 33 proprietà, ma {Corpo} non è uno di questi. Quella proprietà sembra essere ereditata dalla classe base .Item, o qualcosa del genere.
Quindi, devo ricaricare l'oggetto come tipo Elemento? Oppure ricaricalo tramite .Bind o qualcosa del genere? Tieni presente che ho bisogno di farlo con migliaia di articoli, quindi l'efficienza conta per me.
lavorato come un fascino! – NoReceipt4Panda