public void RunDynamic() { var code = @" using System; namespace MyModel { public class Xxx { public string Yyy { get; set; } } } "; var assemblyName = "t_123_v_1.1"; var wellKnownTypeContainer = new WellKnownTypeContainer(); var typeContainer = new TypeContainer(wellKnownTypeContainer); var assembly = DynamicModelLoader.Load(assemblyName, code); foreach (var type in assembly.GetTypes()) { typeContainer.Add(type); } var customActivityParser = new CustomActivityParser(new WellKnownDescriptorContainer(), typeContainer); var definition = LoadDefinition("dynamic"); var activity = customActivityParser.Parse(JsonSerializer.Deserialize <JsonElement>(definition)); var compiler = new ActivityCompiler(typeContainer); compiler.Compile("nnn", "mmmm", activity); var executor = new ActivityExecutor(null); executor.Run(activity); }
public void LoadCode() { var code = @" using System; namespace MyModel { public class Xxx { public string Yyy { get; set; } } } "; var assemblyName = "t_123_v_1.1"; var assembly = DynamicModelLoader.Load(assemblyName, code); var type = Type.GetType($"MyModel.Xxx,{assemblyName}"); Assert.NotNull(type); }
public void RunMirrorUpdate() { var code = @" using System; namespace MyModels { public class student { public string id {get;set;} public student_data data { get; set; } } public class student_data { public string name {get;set;} public int age {get;set;} } } "; var assemblyName = "t_123_v_1.1"; var wellKnownTypeContainer = new WellKnownTypeContainer(); var typeContainer = new TypeContainer(wellKnownTypeContainer); var assembly = DynamicModelLoader.Load(assemblyName, code); foreach (var type in assembly.GetTypes()) { typeContainer.Add(type); } var descriptorContainer = new DescriptorContainer(new WellKnownDescriptorContainer()); descriptorContainer.Add(new MirrorUpdateDescriptor()); var customActivityParser = new CustomActivityParser(descriptorContainer, typeContainer); var definition = LoadDefinition("mirrorUpdate"); var activity = customActivityParser.Parse(JsonSerializer.Deserialize <JsonElement>(definition)); var compiler = new ActivityCompiler(typeContainer); compiler.Compile("nnn", "mmmm", activity); var executor = new ActivityExecutor(null); executor.Run(activity); }