2012-08-17 54 views
1

我使用EWS API导出预约用户的交流压延机。它工作正常,但我在HTML没有与表调芯等格式正确的任命注意到。于是,我尝试设置预约身型物业为HTML,但得到的ServiceObjectPropertyException说:“你必须加载或转让该物业之前,你可以阅读它的价值”上线,我设置的属性。ServiceObjectPropertyException上的EWS约会

   User SelectedUser = UserController.GetExchangeCredentials(UserID); 

       //If they have their exchange credentials setup then create the appointment in their exchange calender 
       if (SelectedUser.ExchangeUsername != String.Empty) 
       { 
        Client ClientInfo = ClientController.GetContactInfoForCalenderAppointment(int.Parse(btn_SubmitNextContactDate.CommandArgument.ToString()), int.Parse(ddl_Contact.SelectedValue)); 

        //Setup the exchange service with the user credentials of that receiving the appointment 
        ExchangeService Service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 
        Service.UseDefaultCredentials = false; 
        Service.Credentials = new WebCredentials(SelectedUser.ExchangeUsername, SelectedUser.ExchangePassword, SelectedUser.ServerDomain); 
        Service.AutodiscoverUrl(SelectedUser.Email); 

        //Create the appointment 
        Microsoft.Exchange.WebServices.Data.Appointment Appointment = new Microsoft.Exchange.WebServices.Data.Appointment(Service); 
        Appointment.Body.BodyType = BodyType.HTML; 
        Appointment.Subject = "Next Contact Date for " + OperatingName.Text;       
        Appointment.Body = "<table><tr><td><b>Client Name:</b></td><td>" + ClientName.Text + "</td></tr>"; 
        Appointment.Body += "<tr><td><b>Operating Name:</b></td><td>" + OperatingName.Text + "</td></tr>"; 
        Appointment.Body += "<tr><td><b>Service:</b></td><td>" + ddl_ServiceType.SelectedItem.Text + "</td></tr>"; 
        Appointment.Body += "<tr><td><b>Contact Method:</b></td><td>" + ddl_ContactMethod.SelectedItem.Text + "</td></tr>"; 
        Appointment.Body += "<tr><td><b>Contact Name:</b></td><td>" + ddl_Contact.SelectedItem.Text + "</td></tr>"; 
        Appointment.Body += "<tr><td><b>Contact Phone:</b></td><td>" + ClientInfo.Contacts[0].Phone + "</td></tr>"; 
        Appointment.Body += "<tr><td><b>Contact Email:</b></td><td>" + ClientInfo.Contacts[0].Email + "</td></tr>"; 
        Appointment.Body += "<tr><td><b>Client Address 1:</b></td><td>" + ClientInfo.Address1 + "</td></tr>"; 
        Appointment.Body += "<tr><td><b>Note:</b></td><td>" + txt_NextContactDateNote.Content + "</td></tr></table>"; 
        Appointment.Start = DateTime.Parse(txt_NextContactDate.Text); 
        Appointment.End = DateTime.Parse(txt_NextContactDate.Text); 
        Appointment.Save(SendInvitationsMode.SendToNone); 
       }     
+0

Derp。只好到属性设置体内后分配。但现在我发现,在压延时心不是正确格式化HTML还是?为什么是这样? – cpiasecki 2012-08-17 17:46:58

回答

1

Exchange 2010 SP1中正常工作......我没有Exchange 2007 SP1中对它进行测试。

Appointment appt = new Appointment(service) 
{ 
    Subject = "Next Contact Date", 
    Body = new MessageBody() 
    { 
     BodyType = BodyType.HTML, 
     Text = "here is some body content. <b>this is bold</b>" + 
       "<table><tr><td><b>Client name: </b></td><td>George</td></tr></table>", 
    }, 
    Start = DateTime.Now.AddDays(1), 
    End = DateTime.Now.AddDays(1).AddHours(.5), 
}; 
appt.Save(); 
+1

测试,它的工作原理! – Gyocol 2014-11-10 08:46:53