public void Load_Test() { var sdkDir = Path.GetDirectoryName(typeof(SdkStreamManager).Assembly.Location); var sdkStreamManager = new SdkStreamManager(sdkDir); var loader = new ContractCodeLoadContext(sdkStreamManager); var code = File.ReadAllBytes(typeof(TestContract).Assembly.Location); using (var stream = new MemoryStream(code)) { var assembly = loader.LoadFromStream(stream); Activator.CreateInstance(assembly.GetType("AElf.Runtime.CSharp.Tests.TestContract.TestContract")); assembly.FullName.ShouldBe( "AElf.Runtime.CSharp.Tests.TestContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"); loader.Assemblies.Count().ShouldBe(2); loader.Assemblies.ShouldContain(a => a.FullName == "AElf.Runtime.CSharp.Tests.TestContract, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"); loader.Assemblies.ShouldContain(a => a.FullName == "AElf.Sdk.CSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"); } loader.Unload(); }
public ContractCodeLoadContextTest() { _loadContext = new ContractCodeLoadContext(System.IO.Path.GetFullPath(_apiDllDirectory), null); }