private static bool IsTypeInXmlNamespace(IProjectContext project, IType type, string xmlNamespaceString) { if (project == null || project.ProjectNamespaces == null) { return(false); } IXmlNamespace @namespace = project.ProjectNamespaces.GetNamespace(type.RuntimeAssembly, type.Namespace); IXmlNamespace xmlNamespace = (IXmlNamespace)XmlNamespace.ToNamespace(xmlNamespaceString, XmlNamespace.GetNamespaceCanonicalization((ITypeResolver)project)); return(@namespace != null && @namespace.Value == xmlNamespace.Value); }
XmlNamespace IXmlNamespaceResolver.GetXmlNamespace(XmlnsPrefix prefix, XmlNamespaceCanonicalization canonicalization) { for (XmlElementReference elementReference = this; elementReference != null; elementReference = elementReference.Parent as XmlElementReference) { foreach (XmlElementReference.Attribute attribute in elementReference.AttributesToPreserve) { if ((attribute.Type == XmlElementReference.AttributeType.Xmlns || attribute.Type == XmlElementReference.AttributeType.SerializerAddedXmlns) && string.Equals(string.IsNullOrEmpty(attribute.XmlAttribute.Prefix) ? attribute.XmlAttribute.Prefix : attribute.XmlAttribute.LocalName, prefix.Value, StringComparison.Ordinal)) { return(XmlNamespace.ToNamespace(attribute.XmlAttribute.Value.Value, canonicalization)); } } } return((XmlNamespace)null); }
private XmlNamespace CreateUri(IAssembly assembly, string clrNamespace) { StringBuilder stringBuilder = new StringBuilder("clr-namespace:"); stringBuilder.Append(clrNamespace); string assemblyName = this.GetAssemblyName(assembly); if (!string.IsNullOrEmpty(assemblyName)) { stringBuilder.Append(';'); stringBuilder.Append("assembly="); stringBuilder.Append(assemblyName); } return(XmlNamespace.ToNamespace(stringBuilder.ToString(), XmlNamespace.GetNamespaceCanonicalization(this.documentContext.TypeResolver))); }
public ICodeAidTypeInfo GetTypeByName(string uri, string typeName) { IProjectContext projectContext = this.ProjectContext; IXmlNamespace xmlNamespace = (IXmlNamespace)XmlNamespace.ToNamespace(uri, XmlNamespace.GetNamespaceCanonicalization((ITypeResolver)projectContext)); if (xmlNamespace == null) { return((ICodeAidTypeInfo)null); } IType type = projectContext.GetType(xmlNamespace, typeName); if (type != null) { return((ICodeAidTypeInfo) new CodeAidTypeInfo(this, type)); } return((ICodeAidTypeInfo)null); }
public Type ResolveType(TypeIdentifier typeIdentifier) { if (typeIdentifier.XmlNamespace != null) { IType type = this.viewModel.ProjectContext.GetType((IXmlNamespace)XmlNamespace.ToNamespace(typeIdentifier.XmlNamespace, XmlNamespaceCanonicalization.None), typeIdentifier.Name); if (type != null) { return(type.RuntimeType); } } foreach (IAssemblyId assemblyId in (IEnumerable <IAssembly>) this.viewModel.ProjectContext.AssemblyReferences) { IType type = this.viewModel.ProjectContext.GetType(assemblyId.Name, typeIdentifier.Name); if (type != null) { return(type.RuntimeType); } } return((Type)null); }
public static ITypeId SniffRootNodeType(Stream stream, IDocumentContext documentContext, out string xamlClassAttribute) { xamlClassAttribute = (string)null; try { ITypeResolver typeResolver = documentContext.TypeResolver; using (XmlReader xmlReader = XmlReader.Create(stream)) { ClrNamespaceUriParseCache documentNamespaces = new ClrNamespaceUriParseCache(typeResolver); while (xmlReader.Read()) { if (xmlReader.MoveToContent() == XmlNodeType.Element) { xamlClassAttribute = xmlReader.GetAttribute("Class", "http://schemas.microsoft.com/winfx/2006/xaml"); string str = xmlReader.LookupNamespace(xmlReader.Prefix); if (!string.IsNullOrEmpty(str)) { return((ITypeId)XamlTypeHelper.GetTypeId(typeResolver, documentNamespaces, XmlNamespace.ToNamespace(str, XmlNamespace.GetNamespaceCanonicalization(typeResolver)), xmlReader.LocalName, false, false)); } } } } } catch (XmlException ex) { } return((ITypeId)null); }