Mono.Cecil.MetadataResolver.Resolve C# (CSharp) Method

Resolve() public method

public Resolve ( TypeReference type ) : Mono.Cecil.TypeDefinition
type TypeReference
return Mono.Cecil.TypeDefinition
		public virtual TypeDefinition Resolve (TypeReference type)
		{
			if (type == null)
				throw new ArgumentNullException ("type");

			type = type.GetElementType ();

			var scope = type.Scope;

			if (scope == null)
				return null;

			switch (scope.MetadataScopeType) {
			case MetadataScopeType.AssemblyNameReference:
				var assembly = assembly_resolver.Resolve ((AssemblyNameReference) scope);
				if (assembly == null)
					return null;

				return GetType (assembly.MainModule, type);
			case MetadataScopeType.ModuleDefinition:
				return GetType ((ModuleDefinition) scope, type);
			case MetadataScopeType.ModuleReference:
				var modules = type.Module.Assembly.Modules;
				var module_ref = (ModuleReference) scope;
				for (int i = 0; i < modules.Count; i++) {
					var netmodule = modules [i];
					if (netmodule.Name == module_ref.Name)
						return GetType (netmodule, type);
				}
				break;
			}

			throw new NotSupportedException ();
		}

Same methods

MetadataResolver::Resolve ( FieldReference field ) : FieldDefinition
MetadataResolver::Resolve ( MethodReference method ) : Mono.Cecil.MethodDefinition

Usage Example

Esempio n. 1
0
 internal MethodDefinition Resolve(MethodReference method)
 {
     return(MetadataResolver.Resolve(method));
 }
All Usage Examples Of Mono.Cecil.MetadataResolver::Resolve