Пример #1
0
        private bool TryLoadContractNodes(ref AssemblyNode assembly)
        {
            ContractNodes nodes = null;

            foreach (Module module in assembly.Modules)
            {
                IAssemblyResolver assemblyResolver = module.Definition.AssemblyResolver;
                foreach (AssemblyNameReference reference in module.Definition.AssemblyReferences)
                {
                    AssemblyDefinition def = assemblyResolver.Resolve(reference);
                    nodes = ContractNodes.GetContractNodes(new AssemblyNode(def), (s) => { });
                    if (nodes != null)
                    {
                        break;
                    }
                }
            }

            if (nodes == null)
            {
                return(false);
            }

            var extractor = new ContractExtractor(nodes, assembly, true);

            assembly = (AssemblyNode)extractor.Visit(assembly);
            return(true);
        }