public async Task ExecuteStaticMethodFromAssemblyTest(int a) { var asmPath = Path.Combine(Directory.GetCurrentDirectory(), "TestAssembly.dll"); await _executiveGrain.LoadAssembly(AssemblyUtils.GetAssemblyName(asmPath), AssemblyUtils.GetAssemblyVersion(asmPath), asmPath); var ret = await _executiveGrain.Execute <double>(nameof(TestAssembly.TestStaticClass), nameof(TestAssembly.TestStaticClass.Pow2), a); Assert.AreEqual(ret, TestAssembly.TestStaticClass.Pow2(a)); }
public static void Main(string[] args) { string assemblyName = AssemblyUtils.GetAssemblyName(args); Console.WriteLine("Loading info for " + assemblyName); Assembly a = Assembly.LoadFrom(assemblyName); Module[] modules = a.GetModules(); foreach (Module m in modules) { Console.WriteLine("Module: " + m.Name); } }
public string CreateTempDirectory(Assembly assembly = null, params string[] subdirectoryNames) { var pathHash = new SHA1Algorithm().ComputeText(AssemblyUtils.GetInstallDir()); var folderNames = new List <string> { RootTempDirectory, pathHash.Substring(0, 7), AssemblyUtils.GetAssemblyName(assembly), Process.GetCurrentProcess().Id.ToString("0") }; folderNames.AddRange(subdirectoryNames.Where(s => !string.IsNullOrWhiteSpace(s))); var path = Combine(folderNames.ToArray()); Directory.CreateDirectory(path); RegisterTempDirectories(path); return(path); }
/// <summary> /// Loads a new assembly! /// </summary> /// <param name="targetType"></param> /// <returns></returns> public async Task LoadAssembly(Type targetType, bool loadReferences = true) { var asmVersion = AssemblyUtils.GetAssemblyVersion(targetType); var asmFullname = AssemblyUtils.GetAssemblyName(targetType); var asmBytes = AssemblyUtils.GetAssemblyBinary(targetType); await LoadAssembly(asmFullname, asmVersion, asmBytes); if (loadReferences) { var references = AssemblyUtils.GetNonSystemReferencedAssemblies(asmFullname, 0, 3); foreach (var @ref in references) { var asm = Assembly.Load(@ref); await LoadAssembly(asm); } } }
private static void ShowVersion() { Console.Error.WriteLine("{0} v{1} - compiled {2}", AssemblyUtils.GetAssemblyName(), AssemblyUtils.GetAssemblyVersion(), AssemblyUtils.GetLinkerTimestamp()); }