public void TestInit()
        {
            Assembly        assembly        = Assembly.LoadFrom("TestConsoleApp.exe");
            AssemblyBrowser assemblyBrowser = new AssemblyBrowser();

            AssemblyInformation = assemblyBrowser.GetAssemblyInformation(assembly);
        }
示例#2
0
        public AssemblyInformation LoadAssembly(string path)
        {
            AssemblyBrowser assemblyBrowser = new AssemblyBrowser();
            Assembly        assembly        = Assembly.LoadFrom(path);

            return(assemblyBrowser.BrowseAssembly(assembly));
        }
示例#3
0
        public void BadFilePathTest()
        {
            string path = "";
            var    asm  = new AssemblyBrowser().GetAssemblyInfo(path);

            Assert.AreEqual(0, asm.Count);
        }
示例#4
0
文件: AppCore.cs 项目: minskowl/MY
        /// <summary>
        /// Initializes manager.
        /// </summary>
        /// <param name="pdBrowser">The pd browser.</param>
        /// <param name="assemblyBrowser">The assembly browser.</param>
        /// <param name="schemaBrowser">The schema browser.</param>
        /// <param name="projectBrowser">The project browser.</param>
        /// <param name="fileTabControl">The file tab control.</param>
        /// <param name="propertyGrid">The property grid.</param>
        /// <param name="errorViewer">The error viewer.</param>
        public void Initialize(IFormMain form,
                               PDBrowser pdBrowser,
                               AssemblyBrowser assemblyBrowser,
                               SchemaBrowser schemaBrowser,
                               GeneratorProjectBrowser projectBrowser,
                               IFileTabControl fileTabControl,
                               PropertyGrid propertyGrid,
                               IErrorViewer errorViewer
                               )
        {
            _form = form;
            _pdManager.Browser        = pdBrowser;
            _pdManager.FileTabs       = fileTabControl;
            _pdManager.ProjectBrowser = projectBrowser;
            _pdManager.ErrorViewer    = errorViewer;

            _assemblyManager.Browser        = assemblyBrowser;
            _assemblyManager.FileTabs       = fileTabControl;
            _assemblyManager.ProjectBrowser = projectBrowser;
            _assemblyManager.ErrorViewer    = errorViewer;

            _schemaManager.Browser        = schemaBrowser;
            _schemaManager.FileTabs       = fileTabControl;
            _schemaManager.ProjectBrowser = projectBrowser;
            _schemaManager.ErrorViewer    = errorViewer;

            if (propertyGrid != null)
            {
                _propertyGrid = propertyGrid;
                projectBrowser.AfterSelect  += new EventHandler(Browsers_AfterSelect);
                schemaBrowser.AfterSelect   += new EventHandler(Browsers_AfterSelect);
                assemblyBrowser.AfterSelect += new EventHandler(Browsers_AfterSelect);
            }
        }
        public List <NamespaceInfosModel> GetAssemblyInfos(string path)
        {
            var asm       = new AssemblyBrowser();
            var converter = new Converter();

            return(converter.Convert(asm.GetNamespaceInfos(path)));
        }
        public void Init()
        {
            string path = @"..\..\TestAssembly\TestAssembly.dll";

            browser    = new AssemblyBrowser();
            namespaces = browser.GetAssemblyTypes(path);
        }
        public void TestFindBoot()
        {
            var bots = AssemblyBrowser.GeTypeses().Where(am => am.IsClass && am.GetInterfaces().Contains(typeof(IBotModule)));

            Assert.NotNull(bots);
            Assert.NotEmpty(bots);
            Assert.True(bots.Contains(typeof(SqlBot.SqlBot)));
        }
示例#8
0
        public void TestGetTypesMethod_SearchingClerkType_ReturnsTypeName()
        {
            var assembly          = Assembly.LoadFrom("class_library.dll");
            var namespaceName     = AssemblyBrowser.GetNamespaces(assembly)[0].MemberName;
            var receivedTypesList = AssemblyBrowser.GetNamespaceTypes(assembly, namespaceName);

            Assert.IsTrue(receivedTypesList.Find(item => item.MemberName == "Clerk") != null);
        }
示例#9
0
        public void TestGetNamespacesMethod_ReturnsNamespaceName()
        {
            var assembly = Assembly.LoadFrom("class_library.dll");
            var receivedNamespaceName = AssemblyBrowser.GetNamespaces(assembly)[0].MemberName;
            var expectedNamespaceName = "classes_library";

            Assert.AreEqual(expectedNamespaceName, receivedNamespaceName, ":=(");
        }
示例#10
0
        private void BrowseAssembly()
        {
            AssemblyBrowser browser = new AssemblyBrowser();
            BrowserResult   result  = browser.Browse(AssemblyPath);

            AssemblyFullName = result.FullName;
            AssemblyInfo     = result.Namespaces;
        }
示例#11
0
 private void GetAsm()
 {
     if (GetFileDialog.OpenFileDialog())
     {
         AssemblyBrowser assemblyBrowser = new AssemblyBrowser();
         Assembly        assembly        = Assembly.LoadFrom(GetFileDialog.FilePath);
         AssemblyInformation = assemblyBrowser.GetAssemblyInformation(assembly);
     }
 }
        public void Setup()
        {
            string path = @"C:\Users\dauks\source\repos\Spp_Lab3_Assembly_Browser\TestLib\bin\Debug\TestLib.dll";

            // GetType().Assembly.Location

            AssemblyBrowser browser = new AssemblyBrowser();

            _result = browser.GetNamespaces(path);
        }
示例#13
0
        public void TestGetTypeMembersMethod_SearchingStringProperty_ReturnsPropertyDescription()
        {
            var assembly      = Assembly.LoadFrom("class_library.dll");
            var namespaceName = AssemblyBrowser.GetNamespaces(assembly)[0].MemberName;
            var clerkType     = AssemblyBrowser.GetNamespaceTypes(assembly, namespaceName)
                                .Find(item => item.MemberName == "Clerk").MemberName;
            var receivedPropertyDescription = AssemblyBrowser.GetTypeMembers(assembly, clerkType)
                                              .Find(item => item.MemberName.Contains("PassNum")).MemberName;
            var expectedPropertyDescription = "PassNum: String";

            Assert.AreEqual(expectedPropertyDescription, receivedPropertyDescription, ":-(");
        }
示例#14
0
        public void TestExtendedTask_SearchingExtensionMethod_ReturnsExtensionMethodSignature()
        {
            var assembly        = Assembly.LoadFrom("class_library.dll");
            var namespaceName   = AssemblyBrowser.GetNamespaces(assembly)[0].MemberName;
            var electricianType = AssemblyBrowser.GetNamespaceTypes(assembly, namespaceName)
                                  .Find(item => item.MemberName == "Electrician").MemberName;
            var receivedMethodSignature = AssemblyBrowser.GetTypeMembers(assembly, electricianType)
                                          .Find(item => item.MemberName.Contains("CountTools")).MemberName;
            var expectedMethodSignature = "(extension) public static Int32 CountTools()";

            Assert.AreEqual(expectedMethodSignature, receivedMethodSignature, ":'-(");
        }
示例#15
0
        public void TestGetTypeMembersMethod_SearchingMethod_ReturnsMethodSignature()
        {
            var assembly        = Assembly.LoadFrom("class_library.dll");
            var namespaceName   = AssemblyBrowser.GetNamespaces(assembly)[0].MemberName;
            var electricianType = AssemblyBrowser.GetNamespaceTypes(assembly, namespaceName)
                                  .Find(item => item.MemberName == "Electrician").MemberName;
            var receivedMethodSignature = AssemblyBrowser.GetTypeMembers(assembly, electricianType)
                                          .Find(item => item.MemberName.Contains("AddWorker")).MemberName;
            var expectedMethodSignature = "public virtual String AddWorker()";

            Assert.AreEqual(expectedMethodSignature, receivedMethodSignature, ":'-(");
        }
示例#16
0
        public void NamespaceTest()
        {
            string expected = "Browser.Test";
            string path     = Directory.GetCurrentDirectory();

            path += @"\Assembly-Browser.Test.dll";

            var asm = new AssemblyBrowser().GetAssemblyInfo(path);

            string actual = asm[1].Name;

            Assert.AreEqual(expected, actual);
        }
示例#17
0
        public void GenericNameTest()
        {
            string expected = "Field: List<Int32> A";

            string path = Directory.GetCurrentDirectory();

            path += @"\Assembly-Browser.Test.dll";

            var asm = new AssemblyBrowser().GetAssemblyInfo(path);

            string actual = asm[1].Classes[0].Fields[0].Name;

            Assert.AreEqual(expected, actual);
        }
示例#18
0
        public void MethodNameTest()
        {
            string expected = "Method: Void MethodNameTest()";

            string path = Directory.GetCurrentDirectory();

            path += @"\Assembly-Browser.Test.dll";

            var asm = new AssemblyBrowser().GetAssemblyInfo(path);

            string actual = asm[1].Classes[0].Methods[0].Name;

            Assert.AreEqual(expected, actual);
        }
示例#19
0
        public void PropertyNameTest()
        {
            string expected = "Property : List<Foo> Foos";

            string path = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\..\\"));

            path += @"\TestClass\bin\Debug\netcoreapp3.1\TestClass.dll";

            var asm = new AssemblyBrowser().GetNamespaceInfos(path);

            string actual = asm[0].typeInfos[0].PropertyInfos[0].Name;

            Assert.AreEqual(expected, actual);
        }
示例#20
0
        public void MethodNameTest()
        {
            string expected = "Method : Void DoSomething ()";

            string path = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\..\\"));

            path += @"\TestClass\bin\Debug\netcoreapp3.1\TestClass.dll";

            var asm = new AssemblyBrowser().GetNamespaceInfos(path);

            string actual = asm[0].typeInfos[0].MethodsInfos[2].Name;

            Assert.AreEqual(expected, actual);
        }
示例#21
0
        public void NamespaceNameTest()
        {
            string expected = "Namespace : TestClass";

            string path = Path.GetFullPath(Path.Combine(AppContext.BaseDirectory, "..\\..\\..\\..\\"));

            path += @"\TestClass\bin\Debug\netcoreapp3.1\TestClass.dll";

            var asm = new AssemblyBrowser().GetNamespaceInfos(path);

            Console.WriteLine(path);

            string actual = asm[0].Name;

            Assert.AreEqual(expected, actual);
        }
示例#22
0
 public void Setup()
 {
     browser = new AssemblyBrowser();
 }
示例#23
0
        /// <summary>
        /// Rewrites the target methods by the proxy ones.
        /// </summary>
        /// <param name="assembly">The assembly to modify.</param>
        private void Rewrite(Assembly assembly)
        {
            Contract.Requires(assembly != null);

            var types = new AssemblyBrowser(assembly, assembly, new TypeMatching()).FindTypes().ToList();
            foreach (var type in types)
            {
                var entryHook = type.Proxy.FindMethods(MemberType.Static, typeof(EntryHookAttribute)).SingleOrDefault();
                var exitHook = type.Proxy.FindMethods(MemberType.Static, typeof(ExitHookAttribute)).SingleOrDefault();

                Trace.WriteLine(string.Format("Rewriting type {0}.", string.Join(", ", type.Target.FullName)));
                var pairs = new TypeBrowser(type.Proxy, type.Target, new MethodMatching()).FindTypes();

                foreach (var pair in pairs)
                {
                    Trace.WriteLine(string.Format("Rewriting pair {0}.", pair.Target.Name));
                    pair.Target.ReplaceBody(pair.Proxy, entryHook, exitHook);
                }
            }
        }
示例#24
0
        public DataViewModel()
        {
            string path = @"C:\Users\Xiaomi\source\repos\Faker\Faker\bin\Debug\netcoreapp3.1\Faker.dll";

            _Types = new AssemblyBrowser().GetAssemblyInfo(path);
        }
 public Model()
 {
     _browser = new AssemblyBrowser();
 }