protected XmlNamespace AddNamespace(IAssembly assembly, string xamlNamespace, string clrNamespace) { XmlNamespace @namespace = XmlNamespace.ToNamespace(xamlNamespace, this.canonicalization); XmlnsDefinitionMap.XmlNamespaceTypeMap typeMapCreatingIfNecessary = this.GetTypeMapCreatingIfNecessary(@namespace); typeMapCreatingIfNecessary.AssemblyNamespaces.Add(new XmlnsDefinitionMap.AssemblyNamespace(assembly, clrNamespace)); return @namespace; }
protected void SetNamespacePrefix(string xamlNamespace, string prefix) { XmlNamespace @namespace = XmlNamespace.ToNamespace(xamlNamespace, this.canonicalization); XmlnsDefinitionMap.XmlNamespaceTypeMap typeMapCreatingIfNecessary = this.GetTypeMapCreatingIfNecessary(@namespace); if (typeMapCreatingIfNecessary.DefaultPrefix == null) { typeMapCreatingIfNecessary.DefaultPrefix = prefix; } }
private XmlnsDefinitionMap.XmlNamespaceTypeMap GetTypeMapCreatingIfNecessary(XmlNamespace xmlNamespace) { XmlnsDefinitionMap.XmlNamespaceTypeMap xmlNamespaceTypeMap; if (!this.map.TryGetValue(xmlNamespace, out xmlNamespaceTypeMap)) { xmlNamespaceTypeMap = new XmlnsDefinitionMap.XmlNamespaceTypeMap(this.typeResolver, this.targetAssembly); this.map.Add(xmlNamespace, xmlNamespaceTypeMap); } return xmlNamespaceTypeMap; }