Ejemplo n.º 1
0
        public void GetAllTypes()
        {
            var types = new BOATypeDataProvider().GetAllTypes();

            Assert.IsTrue(types.Count > 0);

            types = new BOATypeDataProvider().GetAllTypes(@"d:\boa\client\bin\");

            Assert.IsTrue(types.Count > 0);
        }
Ejemplo n.º 2
0
        public TypeDefinition TryToFindDefinitionAutomaticly(Data data)
        {
            var path = TryGetTargetAssemblyPath(data);

            if (path != null)
            {
                var resolver = new DefaultAssemblyResolver();
                resolver.AddSearchDirectory(data.AssemblySearchDirectoryPath);

                AssemblyDefinition assemblyDefinition = null;
                try
                {
                    assemblyDefinition = AssemblyDefinition.ReadAssembly(path, new ReaderParameters {
                        AssemblyResolver = resolver
                    });

                    var list = new List <TypeDefinition>();

                    assemblyDefinition.ForEachType(type =>
                    {
                        if (type.Name == data.SelectedText)
                        {
                            list.Add(type);
                        }
                    });

                    if (list.Count == 1)
                    {
                        return(list.First());
                    }
                }
                catch (BadImageFormatException)
                {
                }
            }
            if (data.AssemblySearchDirectoryPath != null)
            {
                var assemblySearchDirectoryPath = data.AssemblySearchDirectoryPath;
                if (data.SelectedText != null)
                {
                    data.SelectedText = data.SelectedText.Trim();
                    var list = new BOATypeDataProvider {
                        CountTreshold = int.MaxValue
                    }.GetAllTypes(assemblySearchDirectoryPath).Where(t => t.Name == data.SelectedText).ToList();
                    if (list.Count == 1)
                    {
                        return(list.First().Definition);
                    }
                }
            }

            return(null);
        }