void AddMappingToNamespace(XamlNamespace ns, AssemblyNamespaceMapping mapping) { ns.ClrNamespaces.Add(mapping); List <string> xmlNamespaceList; if (reverseDictList.TryGetValue(mapping, out xmlNamespaceList)) { if (!xmlNamespaceList.Contains(ns.XmlNamespace)) { xmlNamespaceList.Add(ns.XmlNamespace); } } else { reverseDictList.Add(mapping, new List <string>() { ns.XmlNamespace }); } string xmlNamespace; if (reverseDict.TryGetValue(mapping, out xmlNamespace)) { if (xmlNamespace == XamlConstants.PresentationNamespace) { return; } } reverseDict[mapping] = ns.XmlNamespace; }
private Type FindTypeInMappedAssembly(AssemblyNamespaceMapping mapping, string assemblyName, string typeName) { var type = mapping.Assembly.GetTypes().FirstOrDefault(t => { var a = t.GetCustomAttribute <DtoTypeAttribute>(); if (a == null) { return(false); } if (a.AssemblyName == assemblyName && a.TypeName == typeName) { return(true); } return(false); }); if (type != null) { return(type); } if (mapping.OriginalNamespace.Length >= typeName.Length) { return(null); } var newTypeName = mapping.ProxyNamespace + typeName.Substring(mapping.OriginalNamespace.Length); return(mapping.Assembly.GetType(newTypeName)); }
/// <summary> /// Gets the XML namespace that can be used for the specified assembly/namespace combination. /// </summary> public string GetXmlNamespaceFor(Assembly assembly, string @namespace, bool getClrNamespace = false) { AssemblyNamespaceMapping mapping = new AssemblyNamespaceMapping(assembly, @namespace); string xmlNamespace; if (!getClrNamespace && reverseDict.TryGetValue(mapping, out xmlNamespace)) { return(xmlNamespace); } else { return("clr-namespace:" + mapping.Namespace + ";assembly=" + mapping.Assembly.GetName().Name); } }
void AddMappingToNamespace(XamlNamespace ns, AssemblyNamespaceMapping mapping) { ns.ClrNamespaces.Add(mapping); string xmlNamespace; if (reverseDict.TryGetValue(mapping, out xmlNamespace)) { if (xmlNamespace == XamlConstants.PresentationNamespace) { return; } } reverseDict[mapping] = ns.XmlNamespace; }
/// <summary> /// Gets the XML namespaces that can be used for the specified assembly/namespace combination. /// </summary> public List <string> GetXmlNamespacesFor(Assembly assembly, string @namespace, bool getClrNamespace = false) { AssemblyNamespaceMapping mapping = new AssemblyNamespaceMapping(assembly, @namespace); List <string> xmlNamespaces; if (!getClrNamespace && reverseDictList.TryGetValue(mapping, out xmlNamespaces)) { return(xmlNamespaces); } else { return(new List <string>() { "clr-namespace:" + mapping.Namespace + ";assembly=" + mapping.Assembly.GetName().Name }); } }