C#EWS 2.0ライブラリを使用していくつかのイベントを一覧表示しようとしています。EWS - 出席者の読み込み中に予定表の予定を一覧表示できない
は次のコードを使用している次のよう
public IEnumerable<AppEvent> ListEvents(CalendarFolder folder, DateTime? startDate, DateTime? endDate)
{
var items = new List<AppEvent>();
var now = DateTime.Now;
if (startDate == null) startDate = DateTime.Now;
if (endDate == null) endDate = now.AddDays(14);
FindItemsResults<Appointment> findResults = null;
ServiceResponseCollection<GetItemResponse> appointments = null;
CalendarView view = null;
view = new CalendarView((DateTime)startDate, (DateTime)endDate);
findResults = folder.FindAppointments(view);
if (findResults.Items.Count() == 0) return items;
appointments = Service.BindToItems(findResults.Select(item => item.Id), AppointmentPropertySet);
foreach (GetItemResponse item in appointments)
{
var appointment = item.Item as Appointment;
try
{
if (appointment.IsCancelled) continue;
}
catch (System.NullReferenceException)
{
continue;
}
var evt = AppEvent.FromEWSAppointment(appointment);
items.Add(evt);
}
return items;
}
そしてAppointmentPropertySet
がある:私たちはイベントのいずれかの次のエラーを取得している
protected PropertySet AppointmentPropertySet = new PropertySet(
AppointmentSchema.Subject,
AppointmentSchema.Start,
AppointmentSchema.End,
AppointmentSchema.IsAllDayEvent,
AppointmentSchema.IsMeeting,
AppointmentSchema.IsRecurring,
AppointmentSchema.IsCancelled,
AppointmentSchema.IsDraft,
AppointmentSchema.Location,
AppointmentSchema.Resources,
AppointmentSchema.RequiredAttendees,
AppointmentSchema.OptionalAttendees,
AppointmentSchema.LegacyFreeBusyStatus,
AppointmentSchema.Organizer,
AppointmentSchema.Body,
AppointmentSchema.Sensitivity,
AppointmentSchema.AppointmentReplyTime,
AppointmentSchema.AppointmentSequenceNumber,
AppointmentSchema.AppointmentState,
AppointmentSchema.AppointmentType,
AppointmentSchema.ConferenceType,
AppointmentSchema.DateTimeCreated,
AppointmentSchema.Duration,
AppointmentSchema.EndTimeZone,
AppointmentSchema.HasAttachments,
AppointmentSchema.ICalDateTimeStamp,
AppointmentSchema.ICalRecurrenceId,
AppointmentSchema.ICalUid,
AppointmentSchema.Id,
AppointmentSchema.Importance,
AppointmentSchema.IsOnlineMeeting,
AppointmentSchema.IsReminderSet,
AppointmentSchema.IsResponseRequested,
AppointmentSchema.IsUnmodified,
AppointmentSchema.LastModifiedTime,
AppointmentSchema.LegacyFreeBusyStatus,
AppointmentSchema.MeetingRequestWasSent,
AppointmentSchema.MyResponseType,
AppointmentSchema.MeetingWorkspaceUrl,
AppointmentSchema.NetShowUrl,
AppointmentSchema.OriginalStart,
AppointmentSchema.ParentFolderId,
AppointmentSchema.Recurrence,
AppointmentSchema.ReminderDueBy,
AppointmentSchema.ReminderMinutesBeforeStart,
AppointmentSchema.StartTimeZone,
AppointmentSchema.WebClientEditFormQueryString,
AppointmentSchema.WebClientReadFormQueryString
);
。 RequiredAttendees
とOptionalAttendees
をAppointmentPropertySet
から削除すると、正常に機能します(ただし、出席者は返されません)。
このエラーを回避するにはどうすればよいですか、またはこのイベントをスキップして少なくともビューが壊れていない予定を返すようにするにはどうすればよいですか?例外スタックトレースから判断
System.ArgumentException: Requested value 'User' was not found.
at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
at Microsoft.Exchange.WebServices.Data.EwsUtilities.Parse[T](String value)
at Microsoft.Exchange.WebServices.Data.EwsXmlReader.ReadElementValue[T]()
at Microsoft.Exchange.WebServices.Data.EmailAddress.TryReadElementFromXml(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.Attendee.TryReadElementFromXml(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.ComplexProperty.InternalLoadFromXml(EwsServiceXmlReader reader, XmlNamespace xmlNamespace, String xmlElementName, Func`2 readAction)
at Microsoft.Exchange.WebServices.Data.ComplexProperty.LoadFromXml(EwsServiceXmlReader reader, XmlNamespace xmlNamespace, String xmlElementName)
at Microsoft.Exchange.WebServices.Data.Attendee.TryReadElementFromXml(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.ComplexProperty.InternalLoadFromXml(EwsServiceXmlReader reader, XmlNamespace xmlNamespace, String xmlElementName, Func`2 readAction)
at Microsoft.Exchange.WebServices.Data.ComplexProperty.LoadFromXml(EwsServiceXmlReader reader, XmlNamespace xmlNamespace, String xmlElementName)
at Microsoft.Exchange.WebServices.Data.ComplexPropertyCollection`1.LoadFromXml(EwsServiceXmlReader reader, XmlNamespace xmlNamespace, String localElementName)
at Microsoft.Exchange.WebServices.Data.ComplexPropertyDefinitionBase.InternalLoadFromXml(EwsServiceXmlReader reader, PropertyBag propertyBag)
at Microsoft.Exchange.WebServices.Data.ComplexPropertyDefinitionBase.LoadPropertyValueFromXml(EwsServiceXmlReader reader, PropertyBag propertyBag)
at Microsoft.Exchange.WebServices.Data.PropertyBag.LoadFromXml(EwsServiceXmlReader reader, Boolean clear, PropertySet requestedPropertySet, Boolean onlySummaryPropertiesRequested)
at Microsoft.Exchange.WebServices.Data.EwsServiceXmlReader.ReadServiceObjectsCollectionFromXml[TServiceObject](XmlNamespace collectionXmlNamespace, String collectionXmlElementName, GetObjectInstanceDelegate`1 getObjectInstanceDelegate, Boolean clearPropertyBag, PropertySet requestedPropertySet, Boolean summaryPropertiesOnly)
at Microsoft.Exchange.WebServices.Data.GetItemResponse.ReadElementsFromXml(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.ServiceResponse.LoadFromXml(EwsServiceXmlReader reader, String xmlElementName)
at Microsoft.Exchange.WebServices.Data.MultiResponseServiceRequest`1.ParseResponse(EwsServiceXmlReader reader)
at Microsoft.Exchange.WebServices.Data.ServiceRequestBase.ReadResponse(EwsServiceXmlReader ewsXmlReader)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponseXml(Stream responseStream)
at Microsoft.Exchange.WebServices.Data.SimpleServiceRequestBase.ReadResponse(IEwsHttpWebResponse response)
at Microsoft.Exchange.WebServices.Data.ExchangeService.InternalBindToItems(IEnumerable`1 itemIds, PropertySet propertySet, ServiceErrorHandling errorHandling)
at ExchangeAppService.Utilities.API.ExchangeAPI.ListEvents(CalendarFolder folder, Nullable`1 startDate, Nullable`1 endDate) in c:\Users\Some Guy\Documents\Visual Studio 2013\Projects\ExchangeAppService\ExchangeAppService\Utilities\API\Exchange\ExchangeAPI.cs:line 195
まだこの問題がありますか?あなたがそれを修正した場合は、あなたの解答を回答として投稿してください。同じ問題に遭遇した他の人にとっては役に立つかもしれません。 –
私はまだそれを持っています。 – synic
あなたは私の答えを試しましたか?それは動作しませんでしたか? –