/// <summary> /// Performs boilerplate code settings /// </summary> protected internal void StartConsole(string title = null) { //set app domain cfg _startTime = DateTime.Now; if (_isVisable) { try { title = title ?? Assembly.GetEntryAssembly().GetName().Name; Console.WindowWidth = 100; ConsoleCmd.SetConsoleAsTransparent(); Console.ForegroundColor = ConsoleColor.Green; Console.Title = title; PrintToConsole($"{Console.Title} started"); } catch (Exception ex) { Debug.WriteLine(ex.Message); Debug.WriteLine(ex.StackTrace); } } SetReflectionOnly(); SetDefaultReflectionFlags(); FxPointers.AddResolveAsmEventHandlerToDomain(); }
public void TestResolveAllMetadataTokens() { NfConfig.UseReflectionOnlyLoad = false; FxPointers.AddResolveAsmEventHandlerToDomain(); var testtypeName = "AdventureWorks.VeryBadCode.ViewWankathon"; var testAsm = GetAdventureWorks2012(); Assert.IsNotNull(testAsm); var testResult = NoFuture.Gen.Etc.GetCgOfType(testAsm, testtypeName, false, true); Assert.IsNotNull(testResult); var testResultCgMem = testResult.Methods.FirstOrDefault(x => x.Name == "YouGottaGetWidIt"); Assert.IsNotNull(testResultCgMem); Assert.IsNotNull(testResultCgMem.OpCodeCallAndCallvirts); Assert.AreNotEqual(0, testResultCgMem.OpCodeCallAndCallvirts.Count); foreach (var opCodeCall in testResultCgMem.OpCodeCallAndCallvirts) { Console.WriteLine(string.Format("{0} {1} {2}", opCodeCall.DeclaringTypeAsmName, opCodeCall.Name, opCodeCall.TypeName)); } }
public void TestResolveAssemblyEventHandler_BadAsmName() { var arg = new ResolveEventArgs("this-is-not an assembly name", AppDomain.CurrentDomain.GetAssemblies().First()); Assert.Throws <System.IO.FileNotFoundException>(() => FxPointers.ResolveReflectionOnlyAssembly(new object(), arg)); }
public void TestCtor() { FxPointers.AddResolveAsmEventHandlerToDomain(); var testtypeName = "AdventureWorks.Production.Product"; var testAsm = TestCgType.GetAdventureWorks2012(); Assert.IsNotNull(testAsm); var testResult = new NoFuture.Gen.CgTypeCsSrcCode(testAsm, testtypeName); }
public void TestResolveAssembly_CoreAsm() { var asmArg = AppDomain.CurrentDomain.GetAssemblies().First(); Console.WriteLine(asmArg.Location); var arg = new ResolveEventArgs( "System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089", AppDomain.CurrentDomain.GetAssemblies().First()); var testResult = FxPointers.ResolveReflectionOnlyAssembly(new object(), arg); Assert.IsNotNull(testResult); }
public void TestResolveAssembly_InAssemblySearchPath() { //TODO have to run twice at least MakeSomeAssemblies(); var sdir = AsmTests.GetTestFileDirectory(); NfConfig.AssemblySearchPaths.Add(sdir); var testAsm2 = System.Reflection.Assembly.ReflectionOnlyLoadFrom(System.IO.Path.Combine(sdir, "TestAsm2.dll")); var arg = new ResolveEventArgs("TestAsm, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", testAsm2); var testResult = FxPointers.ResolveReflectionOnlyAssembly(new object(), arg); Assert.IsNotNull(testResult); Assert.AreEqual("TestAsm, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", testResult.FullName); }
public void TestCtor2() { FxPointers.AddResolveAsmEventHandlerToDomain(); var testtypeName = "AdventureWorks.Production.Product"; var testAsm = TestCgType.GetAdventureWorks2012(); var testFile = TestCgType.PutTestFileOnDisk("Production_Product.eg"); Assert.IsNotNull(testAsm); Assert.IsTrue(File.Exists(testFile)); var testResult = new NoFuture.Gen.CgTypeCsSrcCode(testAsm, testtypeName, testFile); Assert.IsNotNull(testResult.CgType); Assert.IsTrue(testResult.CgType.Properties.Any(p => p.GetMyStartEnclosure(null) != null)); }
public void TestFindCgMemberByTokenName() { NfConfig.UseReflectionOnlyLoad = false; FxPointers.AddResolveAsmEventHandlerToDomain(); var testAsm = GetAdventureWorks2012(); const string testTypeName = "AdventureWorks.VeryBadCode.BasicGenerics"; var testType = testAsm.GetType(testTypeName); Assert.IsNotNull(testType); var testMethod = testType.GetMember("TakesGenericArg").FirstOrDefault(); Assert.IsNotNull(testMethod); var testAsmIndicies = new AsmIndexResponse() { Asms = new[] { new MetadataTokenAsm() { AssemblyName = "AdventureWorks2012, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null", IndexId = 0 } } }; var testTokenName = AssemblyAnalysis.ConvertToMetadataTokenName(testMethod, testAsmIndicies, null); Assert.IsNotNull(testTokenName); var testCgType = NoFuture.Gen.Etc.GetCgOfType(testAsm, testTypeName, false); Assert.IsNotNull(testCgType); var testResult = testCgType.FindCgMemberByTokenName(testTokenName); Assert.IsNotNull(testResult); }
public void TestRemoveCgMember() { NfConfig.UseReflectionOnlyLoad = false; FxPointers.AddResolveAsmEventHandlerToDomain(); var testAsm = GetAdventureWorks2012(); const string testTypeName = "AdventureWorks.VeryBadCode.BasicGenerics"; var testType = testAsm.GetType(testTypeName); Assert.IsNotNull(testType); var testCgType = NoFuture.Gen.Etc.GetCgOfType(testAsm, testTypeName, false); Assert.IsNotNull(testCgType); var cgMem = testCgType.Methods.FirstOrDefault(); Assert.IsNotNull(cgMem); var testResult = testCgType.RemoveCgMember(cgMem); Assert.AreEqual(1, testResult); }
public void TestFindCgMember() { NfConfig.UseReflectionOnlyLoad = false; FxPointers.AddResolveAsmEventHandlerToDomain(); var testAsm = GetAdventureWorks2012(); const string testTypeName = "AdventureWorks.VeryBadCode.BasicGenerics"; var testType = testAsm.GetType(testTypeName); Assert.IsNotNull(testType); var testMethod = testType.GetMember("TakesGenericArg").FirstOrDefault(); Assert.IsNotNull(testMethod); var testCgType = NoFuture.Gen.Etc.GetCgOfType(testAsm, testTypeName, false); Assert.IsNotNull(testCgType); var testResult = testCgType.FindCgMember("TakesGenericArg", new [] { "myGenericArg" }); Assert.IsNotNull(testResult); Assert.AreEqual("TakesGenericArg", testResult.Name); }
public void Init() { FxPointers.AddSHA512ToCryptoConfig(); }