示例#1
0
        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);
        }
示例#2
0
 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)));
            }
示例#4
0
        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);
 }
示例#6
0
 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);
 }