AssemblyResolver.Resolve C# (CSharp) Method

Resolve() public method

public Resolve ( Mono.Cecil.AssemblyNameReference name ) : AssemblyDefinition
name Mono.Cecil.AssemblyNameReference
return Mono.Cecil.AssemblyDefinition
    public AssemblyDefinition Resolve(AssemblyNameReference name)
    {
        return resolver.Resolve (name);
    }

Same methods

AssemblyResolver::Resolve ( string fullName ) : AssemblyDefinition

Usage Example

        /// <summary>
        /// Check the given dot42.dll wrt forward assemblies.
        /// </summary>
        internal static void Check(string assemblyPath)
        {
            // Load dot42.dll
            var resolver = new AssemblyResolver(new[] { Path.GetDirectoryName(assemblyPath) })
            {
                ShowLoading = false
            };
            var dot42 = resolver.Resolve(Path.GetFileNameWithoutExtension(assemblyPath), new ReaderParameters(ReadingMode.Immediate)
            {
                ReadSymbols = false
            });

            // Load forward assemblies
            var fwAssemblies = new List <AssemblyDefinition>();
            var folder       = Path.GetDirectoryName(assemblyPath);

            foreach (var path in Directory.GetFiles(folder, "*.dll"))
            {
                var name = Path.GetFileNameWithoutExtension(path);
                if (string.Equals(name, dot42.Name.Name, StringComparison.OrdinalIgnoreCase))
                {
                    continue;
                }

                var fwAssembly = resolver.Resolve(name, new ReaderParameters(ReadingMode.Immediate)
                {
                    ReadSymbols = false
                });
                fwAssemblies.Add(fwAssembly);
            }

            var existingCount = 0;
            var missingCount  = 0;

            // Go over all types
            foreach (var type in dot42.MainModule.Types)
            {
                if (!type.IsPublic)
                {
                    continue;
                }
                if (!type.Namespace.StartsWith("System"))
                {
                    continue;
                }
                if (HasForwarder(type, fwAssemblies))
                {
                    existingCount++;
                    continue;
                }

                Console.WriteLine("Missing forwarder for {0}", type.FullName);
                missingCount++;
            }

            Console.WriteLine("{0} forwarders missing, {1} found.", missingCount, existingCount);
        }
All Usage Examples Of AssemblyResolver::Resolve