我正在尝试从 Microsoft.Exchange.WebServices.Data.Appointment 编写派生类。但是,如果不抛出看似序列化的错误,就无法保存派生类。即使我不对派生类进行任何修改,也会发生这种情况。
这有效:
public void CreateTestAppointment() {
Appointment appointment = new Appointment(Exchange) {
ItemClass = "IPM.Appointment", //Exchange Specific. Dont touch unless you know what this does. I sure as hell don't.
Subject = string.Format("{0} Test", "Oliver")
};
appointment.RequiredAttendees.Add("okane@cottinghambutler.com");
appointment.Body = new MessageBody {
Text = "Meeting invite body text placeholder"
};
//Add item to the appropriate categories
appointment.Categories.Add(string.Format("[C]{0}", "Arbitrary Client Group"));
// Add calendar properties to the appointment.
appointment.Start = DateTime.Now.AddMinutes(10);
appointment.End = DateTime.Now.AddMinutes(30);
appointment.Save(Hc360CallCalendarFolderId, SendInvitationsMode.SendOnlyToAll);
}
但这不会:
public void CreateTestAppointment() {
InheritedAppointment appointment = new InheritedAppointment(Exchange) {
ItemClass = "IPM.Appointment", //Exchange Specific. Dont touch unless you know what this does. I sure as hell don't.
Subject = string.Format("{0} Test", "Oliver")
};
appointment.RequiredAttendees.Add("okane@cottinghambutler.com");
appointment.Body = new MessageBody {
Text = "Meeting invite body text placeholder"
};
//Add item to the appropriate categories
appointment.Categories.Add(string.Format("[C]{0}", "Arbitrary Client Group"));
// Add calendar properties to the appointment.
appointment.Start = DateTime.Now.AddMinutes(10);
appointment.End = DateTime.Now.AddMinutes(30);
appointment.Save(Hc360CallCalendarFolderId, SendInvitationsMode.SendOnlyToAll);
}
这很奇怪,因为我实际上并没有在派生类中做任何事情。
public class InheritedAppointment : Microsoft.Exchange.WebServices.Data.Appointment {
public InheritedAppointment(ExchangeService serivce)
: base(serivce) {
}}
看起来这正在被序列化为 XML,并且某些值为 null,但我终其一生都无法弄清楚它是什么。这是原始错误
测试名称:TestMeetingCreation 测试全名:Hc360LibTests.UnitTest1.TestMeetingCreation 测试源:c:\Users\okane\Documents\Visual Studio 2012\Projects\HealthCheck360OutlookCallScheduleHelper\Hc360LibTests\UnitTest1.cs:第 15 行测试结果:失败测试持续时间:0:00 :00.5728502
结果消息:测试方法 Hc360LibTests.UnitTest1.TestMeetingCreation 抛出异常:System.ArgumentException:空字符串 '' 不是有效的本地名称。结果 StackTrace:在 Microsoft.Exchange.WebServices.Data.EwsServiceXmlWriter.WriteStartElement(XmlNamespace xmlNamespace, String localName) 在 Microsoft.Exchange.WebServices.Data.PropertyBag 的 System.Xml.XmlWellFormedWriter.WriteStartElement(String prefix, String localName, String ns) .WriteToXml(EwsServiceXmlWriter writer) 在 Microsoft.Exchange.WebServices.Data.CreateRequest
2.WriteElementsToXml(EwsServiceXmlWriter writer) at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.WriteBodyToXml(EwsServiceXmlWriter writer) at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.WriteToXml(EwsServiceXmlWriter writer) at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.EmitRequest(IEwsHttpWebRequest request) at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.BuildEwsHttpWebRequest() at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ValidateAndEmitRequest(IEwsHttpWebRequest& request) at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest
1.Execute() 在 Microsoft.Exchange.WebServices.Data.ExchangeService.InternalCreateItems(IEnumerable1 items, FolderId parentFolderId, Nullable
1 messageDisposition, Nullable1 sendInvitationsMode, ServiceErrorHandling errorHandling)
1 messageDisposition, Nullable`1 sendInvitationsMode) at Microsoft.Exchange.WebServices.Data.Appointment.Save(FolderId destinationFolderId, SendInvitationsMode sendInvitationsMode) at HealthCheck360ExchangeLib.CallSlotRepository.CreateTestAppointment() in c:\Users\okane\Documents\Visual Studio 2012\Projects \HealthCheck360OutlookCallScheduleHelper\HealthCheck360ExchangeLib\CallSlotRepository.cs:C:\Users\okane\Documents\Visual Studio 2012\Projects\HealthCheck360OutlookCallScheduleHelper\Hc360LibTests\UnitTest1.cs:第 17 行中 Hc360LibTests.UnitTest1.TestMeetingCreation() 的第 70 行
at Microsoft.Exchange.WebServices.Data.Item.InternalCreate(FolderId parentFolderId, Nullable