Example #1
0
		protected void AddClrNamespaceWorkaround(IAssembly assembly, string clrNamespace, string prefix)
		{
			Dictionary<string, string> strs;
			XmlnsDefinitionMap.AssemblyNamespace assemblyNamespace = new XmlnsDefinitionMap.AssemblyNamespace(assembly, clrNamespace);
			if (!this.clrNamespaceWorkaround.TryGetValue(assemblyNamespace.Name, out strs))
			{
				strs = new Dictionary<string, string>();
				this.clrNamespaceWorkaround.Add(assemblyNamespace.Name, strs);
			}
			if (!strs.ContainsKey(clrNamespace))
			{
				strs.Add(clrNamespace, prefix);
			}
		}
Example #2
0
			public Type GetType(string typeName)
			{
				Type type;
				Type type1 = null;
				if (this.typeNameCache.TryGetValue(typeName, out type1))
				{
					return type1;
				}
				using (IEnumerator<XmlnsDefinitionMap.AssemblyNamespace> enumerator = this.AssemblyNamespaces.GetEnumerator())
				{
					while (enumerator.MoveNext())
					{
						XmlnsDefinitionMap.AssemblyNamespace current = enumerator.Current;
						IAssembly assembly = current.Assembly;
						string str = TypeHelper.CombineNamespaceAndTypeName(current.ClrNamespace, typeName);
						try
						{
							type1 = PlatformTypeHelper.GetType(assembly, str);
							if (type1 != null)
							{
								IType type2 = this.typeResolver.GetType(type1);
								if (!this.typeResolver.PlatformMetadata.IsNullType(type2))
								{
									if (TypeHelper.IsSet((assembly.CompareTo(this.targetAssembly) ? MemberAccessTypes.PublicOrInternal : MemberAccessTypes.Public), PlatformTypeHelper.GetMemberAccess(type1)))
									{
										this.typeNameCache.Add(typeName, type1);
										type = type1;
										return type;
									}
								}
							}
						}
						catch (ArgumentException argumentException)
						{
							type = null;
							return type;
						}
					}
					this.typeNameCache.Add(typeName, null);
					return null;
				}
				return type;
			}
Example #3
0
		public IXmlNamespace GetNamespace(IAssembly assemblyReference, string clrNamespace)
		{
			IXmlNamespace key;
			string name = assemblyReference.Name;
			IXmlNamespace xmlNamespace = null;
			Dictionary<IXmlNamespace, XmlnsDefinitionMap.XmlNamespaceTypeMap>.Enumerator enumerator = this.map.GetEnumerator();
			try
			{
				while (enumerator.MoveNext())
				{
					KeyValuePair<IXmlNamespace, XmlnsDefinitionMap.XmlNamespaceTypeMap> current = enumerator.Current;
					using (IEnumerator<XmlnsDefinitionMap.AssemblyNamespace> enumerator1 = current.Value.AssemblyNamespaces.GetEnumerator())
					{
						while (enumerator1.MoveNext())
						{
							XmlnsDefinitionMap.AssemblyNamespace assemblyNamespace = enumerator1.Current;
							if (!(assemblyNamespace.Name == name) || !(assemblyNamespace.ClrNamespace == clrNamespace))
							{
								continue;
							}
							if (current.Key == XmlNamespace.AvalonXmlNamespace || current.Key == XmlNamespace.JoltXmlNamespace)
							{
								key = current.Key;
								return key;
							}
							else
							{
								xmlNamespace = current.Key;
							}
						}
					}
				}
				return xmlNamespace;
			}
			finally
			{
				((IDisposable)enumerator).Dispose();
			}
			return key;
		}