我正在使用 Exchange Web 服务托管 API 来处理任务 (Exchange 2007 SP1)。我可以很好地创建它们。但是,当我尝试进行更新时,它适用于除 .Body 字段之外的所有字段。每当我尝试访问(读取/更新)该字段时,都会出现以下错误:
"You must load or assign this property before you can read its value."
我正在使用的代码如下所示:
//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
奇怪的是,检查属性包显示该对象包含 33 个属性,但 {Body} 不是其中之一。该属性似乎是从基类 .Item 或其他东西继承的。
那么,我是否需要将对象重新加载为 Item 类型?或者通过 .Bind 或其他方式重新加载它?请记住,我需要对数千个项目执行此操作,因此效率对我来说很重要。