Esempio n. 1
0
        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));
        }
Esempio n. 2
0
    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);
        }
    }
Esempio n. 3
0
        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);
                }
            }
        }
Esempio n. 5
0
 private static void ShowVersion()
 {
     Console.Error.WriteLine("{0} v{1} - compiled {2}", AssemblyUtils.GetAssemblyName(), AssemblyUtils.GetAssemblyVersion(), AssemblyUtils.GetLinkerTimestamp());
 }