示例#1
0
 private static void DeserializeFullResult(XmlReader reader, ResultSerializer.ResultDialect dialect, out ADWSResultEntry entry)
 {
     entry = new ADWSResultEntry();
     reader.Read();
     while (reader.NodeType != XmlNodeType.EndElement)
     {
         ResultSerializer.DeserializeAttributeElement(reader, dialect, entry);
     }
     reader.ReadEndElement();
 }
示例#2
0
		public static void Deserialize(XmlReader reader, ResultSerializer.ResultDialect dialect, out ADWSResultEntry entry)
		{
			if (dialect == ResultSerializer.ResultDialect.WSEnumeration || dialect == ResultSerializer.ResultDialect.WSTransfer)
			{
				ResultSerializer.DeserializeFullResult(reader, dialect, out entry);
				return;
			}
			else
			{
				ResultSerializer.DeserializePartialAttribute(reader, dialect, out entry);
				return;
			}
		}
示例#3
0
 public static void Deserialize(XmlReader reader, ResultSerializer.ResultDialect dialect, out ADWSResultEntry entry)
 {
     if (dialect == ResultSerializer.ResultDialect.WSEnumeration || dialect == ResultSerializer.ResultDialect.WSTransfer)
     {
         ResultSerializer.DeserializeFullResult(reader, dialect, out entry);
         return;
     }
     else
     {
         ResultSerializer.DeserializePartialAttribute(reader, dialect, out entry);
         return;
     }
 }
示例#4
0
 private static void DeserializePartialAttribute(XmlReader reader, ResultSerializer.ResultDialect dialect, out ADWSResultEntry entry)
 {
     entry = new ADWSResultEntry();
     while (reader.IsStartElement("PartialAttribute", "http://schemas.microsoft.com/2006/11/IdentityManagement/DirectoryAccess"))
     {
         if (reader.IsEmptyElement)
         {
             reader.Read();
         }
         else
         {
             reader.Read();
             if (reader.NodeType != XmlNodeType.EndElement)
             {
                 ResultSerializer.DeserializeAttributeElement(reader, dialect, entry);
             }
             reader.ReadEndElement();
         }
     }
 }
示例#5
0
		private static void DeserializeAttributeElement(XmlReader reader, ResultSerializer.ResultDialect dialect, ADWSResultEntry entry)
		{
			string str = null;
			string str1 = null;
			string str2 = null;
			string str3 = null;
			bool flag = false;
			if (string.IsNullOrEmpty(reader.Prefix))
			{
				if (!string.Equals(reader.NamespaceURI, "http://schemas.microsoft.com/2008/1/ActiveDirectory", StringComparison.Ordinal))
				{
					flag = false;
				}
				else
				{
					flag = true;
				}
			}
			else
			{
				string str4 = reader.LookupNamespace(reader.Prefix);
				if (!string.Equals(str4, "http://schemas.microsoft.com/2008/1/ActiveDirectory", StringComparison.Ordinal))
				{
					flag = false;
					//reader.Prefix;
				}
				else
				{
					flag = true;
					//reader.Prefix;
				}
			}
			if (!flag)
			{
				bool flag1 = false;
				string str5 = string.Intern(reader.LocalName);
				if (str5.Equals("objectClass", StringComparison.OrdinalIgnoreCase))
				{
					flag1 = true;
				}
				XmlUtility.DeserializeLdapAttributeOption(reader, ref str5);
				object obj = null;
				reader.Read();
				ADValueSerializer.Deserialize(reader, flag1, out obj);
				entry.DirObject.SetValue(str5, new ADPropertyValueCollection(obj));
				reader.ReadEndElement();
				return;
			}
			else
			{
				string localName = reader.LocalName;
				if (!string.Equals(localName, "container-hierarchy-parent", StringComparison.Ordinal))
				{
					if (!string.Equals(localName, "distinguishedName", StringComparison.Ordinal))
					{
						if (!string.Equals(localName, "relativeDistinguishedName", StringComparison.Ordinal))
						{
							if (!string.Equals(localName, "objectReferenceProperty", StringComparison.Ordinal))
							{
								throw new ArgumentException(string.Format(StringResources.ADWSXmlParserInvalidAttribute, localName));
							}
							else
							{
								reader.ReadStartElement("objectReferenceProperty", "http://schemas.microsoft.com/2008/1/ActiveDirectory");
								ADValueSerializer.DeserializeSingleValue<string>(reader, out str3);
								entry.ObjectReferenceProperty = str3;
								reader.ReadEndElement();
								return;
							}
						}
						else
						{
							reader.ReadStartElement("relativeDistinguishedName", "http://schemas.microsoft.com/2008/1/ActiveDirectory");
							ADValueSerializer.DeserializeSingleValue<string>(reader, out str2);
							entry.RelativeDistinguishedName = str2;
							reader.ReadEndElement();
							return;
						}
					}
					else
					{
						reader.ReadStartElement("distinguishedName", "http://schemas.microsoft.com/2008/1/ActiveDirectory");
						ADValueSerializer.DeserializeSingleValue<string>(reader, out str1);
						entry.DistinguishedName = str1;
						reader.ReadEndElement();
						return;
					}
				}
				else
				{
					reader.ReadStartElement("container-hierarchy-parent", "http://schemas.microsoft.com/2008/1/ActiveDirectory");
					ADValueSerializer.DeserializeSingleValue<string>(reader, out str);
					entry.ParentContainer = str;
					reader.ReadEndElement();
					return;
				}
			}
		}
示例#6
0
		private static void DeserializePartialAttribute(XmlReader reader, ResultSerializer.ResultDialect dialect, out ADWSResultEntry entry)
		{
			entry = new ADWSResultEntry();
			while (reader.IsStartElement("PartialAttribute", "http://schemas.microsoft.com/2006/11/IdentityManagement/DirectoryAccess"))
			{
				if (reader.IsEmptyElement)
				{
					reader.Read();
				}
				else
				{
					reader.Read();
					if (reader.NodeType != XmlNodeType.EndElement)
					{
						ResultSerializer.DeserializeAttributeElement(reader, dialect, entry);
					}
					reader.ReadEndElement();
				}
			}
		}
示例#7
0
		private static void DeserializeFullResult(XmlReader reader, ResultSerializer.ResultDialect dialect, out ADWSResultEntry entry)
		{
			entry = new ADWSResultEntry();
			reader.Read();
			while (reader.NodeType != XmlNodeType.EndElement)
			{
				ResultSerializer.DeserializeAttributeElement(reader, dialect, entry);
			}
			reader.ReadEndElement();
		}