/// <summary> /// /// </summary> /// <param name="serviceProvider"></param> /// <param name="reader"></param> /// <returns></returns> internal static LocationServiceData FromXml(IServiceProvider serviceProvider, XmlReader reader) { LocationServiceData obj = new LocationServiceData(); Debug.Assert(reader.NodeType == XmlNodeType.Element, "Expected a node."); Boolean empty = reader.IsEmptyElement; // Process the xml attributes if (reader.HasAttributes) { while (reader.MoveToNextAttribute()) { switch (reader.Name) { case "AccessPointsDoNotIncludeWebAppRelativeDirectory": obj.m_accessPointsDoNotIncludeWebAppRelativeDirectory = XmlConvert.ToBoolean(reader.Value); break; case "ClientCacheFresh": obj.ClientCacheFresh = XmlConvert.ToBoolean(reader.Value); break; case "DefaultAccessMappingMoniker": obj.DefaultAccessMappingMoniker = reader.Value; break; case "LastChangeId": obj.LastChangeId = XmlConvert.ToInt32(reader.Value); break; case "ClientCacheTimeToLive": obj.ClientCacheTimeToLive = XmlConvert.ToInt32(reader.Value); break; default: // Allow attributes such as xsi:type to fall through break; } } } // Process the fields in Xml elements reader.Read(); if (!empty) { while (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "AccessMappings": obj.AccessMappings = XmlUtility.ArrayOfObjectFromXml <AccessMapping>(serviceProvider, reader, "AccessMapping", false, AccessMapping.FromXml); break; case "ServiceDefinitions": obj.ServiceDefinitions = XmlUtility.ArrayOfObjectFromXml <ServiceDefinition>(serviceProvider, reader, "ServiceDefinition", false, ServiceDefinition.FromXml); break; default: // Make sure that we ignore XML node trees we do not understand reader.ReadOuterXml(); break; } } reader.ReadEndElement(); } return(obj); }
/// <summary> /// /// </summary> /// <param name="serviceProvider"></param> /// <param name="reader"></param> /// <returns></returns> internal static ServiceDefinition FromXml(IServiceProvider serviceProvider, XmlReader reader) { ServiceDefinition obj = new ServiceDefinition(); Debug.Assert(reader.NodeType == XmlNodeType.Element, "Expected a node."); Boolean empty = reader.IsEmptyElement; // Process the xml attributes if (reader.HasAttributes) { while (reader.MoveToNextAttribute()) { switch (reader.Name) { case "description": obj.Description = reader.Value; break; case "displayName": obj.DisplayName = reader.Value; break; case "identifier": obj.Identifier = XmlConvert.ToGuid(reader.Value); break; case "isSingleton": obj.m_isSingleton = XmlConvert.ToBoolean(reader.Value); break; case "relativePath": obj.RelativePath = reader.Value; break; case "relativeToSetting": obj.RelativeToSetting = (RelativeToSetting)XmlConvert.ToInt32(reader.Value); break; case "serviceType": obj.ServiceType = reader.Value; break; case "toolId": obj.ToolId = reader.Value; break; case "resourceVersion": obj.ResourceVersion = XmlConvert.ToInt32(reader.Value); break; case "minVersion": obj.MinVersionString = reader.Value; break; case "maxVersion": obj.MaxVersionString = reader.Value; break; case "releasedVersion": obj.ReleasedVersionString = reader.Value; break; default: // Allow attributes such as xsi:type to fall through break; } } } // Process the fields in Xml elements reader.Read(); if (!empty) { while (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "LocationMappings": obj.LocationMappings = new List <LocationMapping>(XmlUtility.ArrayOfObjectFromXml <LocationMapping>(serviceProvider, reader, "LocationMapping", false, LocationMapping.FromXml)); break; case "Properties": // Ignore properties reader.ReadOuterXml(); break; default: // Make sure that we ignore XML node trees we do not understand reader.ReadOuterXml(); break; } } reader.ReadEndElement(); } return(obj); }
internal static Identity FromXml(IServiceProvider serviceProvider, XmlReader reader) { Identity obj = new Identity(); Debug.Assert(reader.NodeType == XmlNodeType.Element, "Expected a node."); bool empty = reader.IsEmptyElement; // Process the xml attributes if (reader.HasAttributes) { while (reader.MoveToNextAttribute()) { switch (reader.Name) { case "DisplayName": obj.ProviderDisplayName = reader.Value; break; case "IsActive": obj.IsActive = XmlConvert.ToBoolean(reader.Value); break; case "IsContainer": obj.IsContainer = XmlConvert.ToBoolean(reader.Value); break; case "TeamFoundationId": obj.Id = XmlConvert.ToGuid(reader.Value); break; case "UniqueName": // We don't have this property on VSIdentity //obj.UniqueName = reader.Value; break; case "UniqueUserId": obj.UniqueUserId = XmlConvert.ToInt32(reader.Value); break; default: // Allow attributes such as xsi:type to fall through break; } } } // Process the fields in Xml elements reader.Read(); if (!empty) { while (reader.NodeType == XmlNodeType.Element) { switch (reader.Name) { case "Attributes": KeyValueOfStringString[] attributes = XmlUtility.ArrayOfObjectFromXml <KeyValueOfStringString>(serviceProvider, reader, "KeyValueOfStringString", false, KeyValueOfStringString.FromXml); if (attributes != null && obj.Properties != null) { foreach (KeyValueOfStringString attribute in attributes) { obj.Properties[attribute.Key] = attribute.Value; } } break; case "Descriptor": obj.Descriptor = IdentityDescriptor.FromXml(serviceProvider, reader); break; case "LocalProperties": // Since we're only using the SOAP serializer for bootstrap, we won't support properties //obj.m_localPropertiesSet = Helper.ArrayOfPropertyValueFromXml(serviceProvider, reader, false); reader.ReadOuterXml(); break; case "MemberOf": obj.MemberOf = XmlUtility.ArrayOfObjectFromXml <IdentityDescriptor>(serviceProvider, reader, "IdentityDescriptor", false, IdentityDescriptor.FromXml); break; case "Members": obj.Members = XmlUtility.ArrayOfObjectFromXml <IdentityDescriptor>(serviceProvider, reader, "IdentityDescriptor", false, IdentityDescriptor.FromXml); break; case "Properties": // Since we're only using the SOAP serializer for bootstrap, we won't support properties //obj.m_propertiesSet = Helper.ArrayOfPropertyValueFromXml(serviceProvider, reader, false); reader.ReadOuterXml(); break; default: // Make sure that we ignore XML node trees we do not understand reader.ReadOuterXml(); break; } } reader.ReadEndElement(); } return(obj); }