本文整理汇总了C#中EwsServiceXmlReader.ReadEndElementIfNecessary方法的典型用法代码示例。如果您正苦于以下问题:C# EwsServiceXmlReader.ReadEndElementIfNecessary方法的具体用法?C# EwsServiceXmlReader.ReadEndElementIfNecessary怎么用?C# EwsServiceXmlReader.ReadEndElementIfNecessary使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类EwsServiceXmlReader
的用法示例。
在下文中一共展示了EwsServiceXmlReader.ReadEndElementIfNecessary方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ReadElementsFromXml
/// <summary>
/// Reads response elements from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal override void ReadElementsFromXml(EwsServiceXmlReader reader)
{
base.ReadElementsFromXml(reader);
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.Token);
this.Id = reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.Id);
this.TokenType = (ClientAccessTokenType)Enum.Parse(typeof(ClientAccessTokenType), reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.TokenType));
this.TokenValue = reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.TokenValue);
this.TTL = int.Parse(reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.TTL));
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.Token);
}
示例2: ReadElementsFromXml
/// <summary>
/// Reads response elements from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal override void ReadElementsFromXml(EwsServiceXmlReader reader)
{
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.ReturnValue);
using (XmlReader returnValueReader = reader.GetXmlReaderForNode())
{
this.ReturnValue = new SafeXmlDocument();
this.ReturnValue.Load(returnValueReader);
}
reader.SkipCurrentElement();
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.ReturnValue);
}
示例3: ReadElementsFromXml
/// <summary>
/// Reads response elements from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal override void ReadElementsFromXml(EwsServiceXmlReader reader)
{
base.ReadElementsFromXml(reader);
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.RootItemId);
string changeKey = reader.ReadAttributeValue(XmlAttributeNames.RootItemChangeKey);
if (!string.IsNullOrEmpty(changeKey) && this.attachment.Owner != null)
{
this.attachment.Owner.RootItemId.ChangeKey = changeKey;
}
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.RootItemId);
}
示例4: ReadElementsFromXml
/// <summary>
/// Reads response elements from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal override void ReadElementsFromXml(EwsServiceXmlReader reader)
{
base.ReadElementsFromXml(reader);
reader.Read();
if (reader.IsStartElement(XmlNamespace.Messages, XmlElementNames.MovedItemId))
{
this.MovedItemId = new ItemId();
this.MovedItemId.LoadFromXml(reader, XmlNamespace.Messages, XmlElementNames.MovedItemId);
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.MovedItemId);
}
}
示例5: ReadElementsFromXml
/// <summary>
/// Reads response elements from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal override void ReadElementsFromXml(EwsServiceXmlReader reader)
{
this.configurations.Clear();
base.ReadElementsFromXml(reader);
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.DiscoverySearchConfigurations);
if (!reader.IsEmptyElement)
{
do
{
reader.Read();
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.DiscoverySearchConfiguration))
{
this.configurations.Add(DiscoverySearchConfiguration.LoadFromXml(reader));
}
}
while (!reader.IsEndElement(XmlNamespace.Messages, XmlElementNames.DiscoverySearchConfigurations));
}
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.DiscoverySearchConfigurations);
}
示例6: ReadElementsFromXml
/// <summary>
/// Reads response elements from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal override void ReadElementsFromXml(EwsServiceXmlReader reader)
{
this.retentionPolicyTags.Clear();
base.ReadElementsFromXml(reader);
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.RetentionPolicyTags);
if (!reader.IsEmptyElement)
{
do
{
reader.Read();
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.RetentionPolicyTag))
{
this.retentionPolicyTags.Add(RetentionPolicyTag.LoadFromXml(reader));
}
}
while (!reader.IsEndElement(XmlNamespace.Messages, XmlElementNames.RetentionPolicyTags));
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.RetentionPolicyTags);
}
}
示例7: LoadPropertyValueFromXml
/// <summary>
/// Loads from XML.
/// </summary>
/// <param name="reader">The reader.</param>
/// <param name="propertyBag">The property bag.</param>
internal override void LoadPropertyValueFromXml(EwsServiceXmlReader reader, PropertyBag propertyBag)
{
reader.EnsureCurrentNodeIsStartElement(XmlNamespace.Types, XmlElementNames.Recurrence);
Recurrence recurrence = null;
reader.Read(XmlNodeType.Element); // This is the pattern element
recurrence = GetRecurrenceFromString(reader.LocalName);
recurrence.LoadFromXml(reader, reader.LocalName);
reader.Read(XmlNodeType.Element); // This is the range element
RecurrenceRange range = GetRecurrenceRange(reader.LocalName);
range.LoadFromXml(reader, reader.LocalName);
range.SetupRecurrence(recurrence);
reader.ReadEndElementIfNecessary(XmlNamespace.Types, XmlElementNames.Recurrence);
propertyBag[this] = recurrence;
}
示例8: LoadFromXml
/// <summary>
/// Loads response from XML.
/// </summary>
/// <param name="reader">The reader.</param>
/// <param name="xmlElementName">Name of the XML element.</param>
internal void LoadFromXml(EwsServiceXmlReader reader, string xmlElementName)
{
if (!reader.IsStartElement(XmlNamespace.Messages, xmlElementName))
{
reader.ReadStartElement(XmlNamespace.Messages, xmlElementName);
}
this.result = reader.ReadAttributeValue<ServiceResult>(XmlAttributeNames.ResponseClass);
if (this.result == ServiceResult.Success || this.result == ServiceResult.Warning)
{
if (this.result == ServiceResult.Warning)
{
this.errorMessage = reader.ReadElementValue(XmlNamespace.Messages, XmlElementNames.MessageText);
}
else
{
reader.ReadElementValue();
if (reader.IsStartElement(XmlNamespace.Messages, XmlElementNames.MessageText))
{
this.errorMessage = reader.ReadElementValue(XmlNamespace.Messages, XmlElementNames.MessageText);
}
}
this.errorCode = reader.ReadElementValue<ServiceError>(XmlNamespace.Messages, XmlElementNames.ResponseCode);
if (this.result == ServiceResult.Warning)
{
reader.ReadElementValue<int>(XmlNamespace.Messages, XmlElementNames.DescriptiveLinkKey);
}
// If batch processing stopped, EWS returns an empty element. Skip over it.
if (this.BatchProcessingStopped)
{
do
{
reader.Read();
}
while (!reader.IsEndElement(XmlNamespace.Messages, xmlElementName));
}
else
{
this.ReadElementsFromXml(reader);
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, xmlElementName);
}
}
else
{
this.errorMessage = reader.ReadElementValue(XmlNamespace.Messages, XmlElementNames.MessageText);
this.errorCode = reader.ReadElementValue<ServiceError>(XmlNamespace.Messages, XmlElementNames.ResponseCode);
reader.ReadElementValue<int>(XmlNamespace.Messages, XmlElementNames.DescriptiveLinkKey);
while (!reader.IsEndElement(XmlNamespace.Messages, xmlElementName))
{
reader.Read();
if (reader.IsStartElement())
{
if (!this.LoadExtraErrorDetailsFromXml(reader, reader.LocalName))
{
reader.SkipCurrentElement();
}
}
}
}
this.MapErrorCodeToErrorMessage();
this.Loaded();
}
示例9: ReadElementsFromXml
/// <summary>
/// Reads response elements from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal override void ReadElementsFromXml(EwsServiceXmlReader reader)
{
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.PhoneCallInformation);
this.phoneCall.LoadFromXml(reader, XmlNamespace.Messages, XmlElementNames.PhoneCallInformation);
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.PhoneCallInformation);
}
示例10: ParseResponse
/// <summary>
/// Parses the response.
/// </summary>
/// <param name="reader">The reader.</param>
/// <returns>Response object.</returns>
internal override object ParseResponse(EwsServiceXmlReader reader)
{
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.ResponseMessages);
GetStreamingEventsResponse response = new GetStreamingEventsResponse(this);
response.LoadFromXml(reader, XmlElementNames.GetStreamingEventsResponseMessage);
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.ResponseMessages);
return response;
}
示例11: LoadFromXml
/// <summary>
/// Loads from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal void LoadFromXml(EwsServiceXmlReader reader)
{
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.Notification);
do
{
NotificationGroup notifications = new NotificationGroup();
notifications.SubscriptionId = reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.SubscriptionId);
notifications.Events = new Collection<NotificationEvent>();
lock (this)
{
this.events.Add(notifications);
}
do
{
reader.Read();
if (reader.IsStartElement())
{
string eventElementName = reader.LocalName;
EventType eventType;
if (GetEventsResults.XmlElementNameToEventTypeMap.TryGetValue(eventElementName, out eventType))
{
if (eventType == EventType.Status)
{
// We don't need to return status events
reader.ReadEndElementIfNecessary(XmlNamespace.Types, eventElementName);
}
else
{
this.LoadNotificationEventFromXml(
reader,
eventElementName,
eventType,
notifications);
}
}
else
{
reader.SkipCurrentElement();
}
}
}
while (!reader.IsEndElement(XmlNamespace.Messages, XmlElementNames.Notification));
reader.Read();
}
while (!reader.IsEndElement(XmlNamespace.Messages, XmlElementNames.Notifications));
}
示例12: ReadElementsFromXml
/// <summary>
/// Reads response elements from XML.
/// </summary>
/// <param name="reader">The reader.</param>
internal override void ReadElementsFromXml(EwsServiceXmlReader reader)
{
base.ReadElementsFromXml(reader);
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.AlternateId);
string alternateIdClass = reader.ReadAttributeValue(XmlNamespace.XmlSchemaInstance, XmlAttributeNames.Type);
int aliasSeparatorIndex = alternateIdClass.IndexOf(':');
if (aliasSeparatorIndex > -1)
{
alternateIdClass = alternateIdClass.Substring(aliasSeparatorIndex + 1);
}
// Alternate Id classes are responsible fro reading the AlternateId end element when necessary
switch (alternateIdClass)
{
case AlternateId.SchemaTypeName:
this.convertedId = new AlternateId();
break;
case AlternatePublicFolderId.SchemaTypeName:
this.convertedId = new AlternatePublicFolderId();
break;
case AlternatePublicFolderItemId.SchemaTypeName:
this.convertedId = new AlternatePublicFolderItemId();
break;
default:
EwsUtilities.Assert(
false,
"ConvertIdResponse.ReadElementsFromXml",
string.Format("Unknown alternate Id class: {0}", alternateIdClass));
break;
}
this.convertedId.LoadAttributesFromXml(reader);
reader.ReadEndElementIfNecessary(XmlNamespace.Messages, XmlElementNames.AlternateId);
}
示例13: LoadFromXml
/// <summary>
/// Load from xml
/// </summary>
/// <param name="reader">The reader</param>
/// <returns>Search result object</returns>
internal static SearchMailboxesResult LoadFromXml(EwsServiceXmlReader reader)
{
SearchMailboxesResult searchResult = new SearchMailboxesResult();
reader.ReadStartElement(XmlNamespace.Messages, XmlElementNames.SearchMailboxesResult);
List<MailboxQuery> searchQueries = new List<MailboxQuery>();
do
{
reader.Read();
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.SearchQueries))
{
reader.ReadStartElement(XmlNamespace.Types, XmlElementNames.MailboxQuery);
string query = reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.Query);
reader.ReadStartElement(XmlNamespace.Types, XmlElementNames.MailboxSearchScopes);
List<MailboxSearchScope> mailboxSearchScopes = new List<MailboxSearchScope>();
do
{
reader.Read();
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.MailboxSearchScope))
{
string mailbox = reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.Mailbox);
reader.ReadStartElement(XmlNamespace.Types, XmlElementNames.SearchScope);
string searchScope = reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.SearchScope);
reader.ReadEndElement(XmlNamespace.Types, XmlElementNames.MailboxSearchScope);
mailboxSearchScopes.Add(new MailboxSearchScope(mailbox, (MailboxSearchLocation)Enum.Parse(typeof(MailboxSearchLocation), searchScope)));
}
}
while (!reader.IsEndElement(XmlNamespace.Types, XmlElementNames.MailboxSearchScopes));
reader.ReadEndElementIfNecessary(XmlNamespace.Types, XmlElementNames.MailboxSearchScopes);
searchQueries.Add(new MailboxQuery(query, mailboxSearchScopes.ToArray()));
}
}
while (!reader.IsEndElement(XmlNamespace.Types, XmlElementNames.SearchQueries));
reader.ReadEndElementIfNecessary(XmlNamespace.Types, XmlElementNames.SearchQueries);
searchResult.SearchQueries = searchQueries.ToArray();
searchResult.ResultType = (SearchResultType)Enum.Parse(typeof(SearchResultType), reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.ResultType));
searchResult.ItemCount = int.Parse(reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.ItemCount));
searchResult.Size = ulong.Parse(reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.Size));
searchResult.PageItemCount = int.Parse(reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.PageItemCount));
searchResult.PageItemSize = ulong.Parse(reader.ReadElementValue(XmlNamespace.Types, XmlElementNames.PageItemSize));
do
{
reader.Read();
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.KeywordStats))
{
searchResult.KeywordStats = LoadKeywordStatsXml(reader);
}
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.Items))
{
searchResult.PreviewItems = LoadPreviewItemsXml(reader);
}
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.FailedMailboxes))
{
searchResult.FailedMailboxes = FailedSearchMailbox.LoadFailedMailboxesXml(XmlNamespace.Types, reader);
}
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.Refiners))
{
List<SearchRefinerItem> refiners = new List<SearchRefinerItem>();
do
{
reader.Read();
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.Refiner))
{
refiners.Add(SearchRefinerItem.LoadFromXml(reader));
}
}
while (!reader.IsEndElement(XmlNamespace.Types, XmlElementNames.Refiners));
if (refiners.Count > 0)
{
searchResult.Refiners = refiners.ToArray();
}
}
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.MailboxStats))
{
List<MailboxStatisticsItem> mailboxStats = new List<MailboxStatisticsItem>();
do
{
reader.Read();
if (reader.IsStartElement(XmlNamespace.Types, XmlElementNames.MailboxStat))
{
mailboxStats.Add(MailboxStatisticsItem.LoadFromXml(reader));
}
}
while (!reader.IsEndElement(XmlNamespace.Types, XmlElementNames.MailboxStats));
if (mailboxStats.Count > 0)
{
searchResult.MailboxStats = mailboxStats.ToArray();
}
}
//.........这里部分代码省略.........
示例14: ReadResponse
/// <summary>
/// Reads the response.
/// </summary>
/// <param name="ewsXmlReader">The XML reader.</param>
/// <param name="responseHeaders">HTTP response headers</param>
/// <returns>Service response.</returns>
protected object ReadResponse(EwsServiceXmlReader ewsXmlReader, WebHeaderCollection responseHeaders)
{
object serviceResponse;
this.ReadPreamble(ewsXmlReader);
ewsXmlReader.ReadStartElement(XmlNamespace.Soap, XmlElementNames.SOAPEnvelopeElementName);
this.ReadSoapHeader(ewsXmlReader);
ewsXmlReader.ReadStartElement(XmlNamespace.Soap, XmlElementNames.SOAPBodyElementName);
ewsXmlReader.ReadStartElement(XmlNamespace.Messages, this.GetResponseXmlElementName());
if (responseHeaders != null)
{
serviceResponse = this.ParseResponse(ewsXmlReader, responseHeaders);
}
else
{
serviceResponse = this.ParseResponse(ewsXmlReader);
}
ewsXmlReader.ReadEndElementIfNecessary(XmlNamespace.Messages, this.GetResponseXmlElementName());
ewsXmlReader.ReadEndElement(XmlNamespace.Soap, XmlElementNames.SOAPBodyElementName);
ewsXmlReader.ReadEndElement(XmlNamespace.Soap, XmlElementNames.SOAPEnvelopeElementName);
return serviceResponse;
}
示例15: LoadPropertyValueFromXml
/// <summary>
/// Loads from XML.
/// </summary>
/// <param name="reader">The reader.</param>
/// <param name="propertyBag">The property bag.</param>
internal override sealed void LoadPropertyValueFromXml(EwsServiceXmlReader reader, PropertyBag propertyBag)
{
reader.EnsureCurrentNodeIsStartElement(XmlNamespace.Types, this.XmlElementName);
if (!reader.IsEmptyElement || reader.HasAttributes)
{
this.InternalLoadFromXml(reader, propertyBag);
}
reader.ReadEndElementIfNecessary(XmlNamespace.Types, this.XmlElementName);
}