public void OutputDir(string output_path) { System.IO.Directory.Delete(output_path, true); var proxy = output_path + "/Proxy"; var adsorber = output_path + "/Adsorber"; var broadcaster = output_path + "/Broadcaster"; System.IO.Directory.CreateDirectory(proxy); System.IO.Directory.CreateDirectory(adsorber); System.IO.Directory.CreateDirectory(broadcaster); var protocolBuilder = new Regulus.Remote.Protocol.CodeBuilder(); protocolBuilder.ProviderEvent += (name, code) => _WriteFile(_GetFile(proxy, name), code); protocolBuilder.GpiEvent += (name, code) => _WriteFile(_GetFile(proxy, name), code); protocolBuilder.EventEvent += (type_name, event_name, code) => _WriteFile(_GetFile(proxy, type_name + event_name), code); protocolBuilder.Build(_ProtocolName, _Types); var unityProtocolBuilder = new Regulus.Remote.Unity.CodeBuilder(_Types, _AgentName, _ProtocolName); unityProtocolBuilder.AgentEvent += (name, code) => _WriteFile(_GetFile(output_path, name), code); unityProtocolBuilder.TypeEvent += (name, ads, b) => { _WriteFile(_GetFile(adsorber, name + "Adsorber"), ads); _WriteFile(_GetFile(broadcaster, name + "Broadcaster"), b); }; unityProtocolBuilder.Build(); }
public void BuildTest() { var codes = new List <string>(); var g = new Regulus.Remote.Protocol.CodeBuilder(); g.ProviderEvent += (name, code) => codes.Add(code); g.EventEvent += (type_name, event_name, code) => codes.Add(code); g.GpiEvent += (type_name, code) => codes.Add(code); g.Build("InterfaceProvider", new [] { typeof(Regulus.Tool.GPI.GPIA) }); var optionsDic = new Dictionary <string, string> { { "CompilerVersion", "v4.0" } }; var provider = new CSharpCodeProvider(optionsDic); var options = new CompilerParameters { GenerateInMemory = true , GenerateExecutable = false, ReferencedAssemblies = { "System.Core.dll", _GetAssemblyPath("Regulus.Library.dll"), _GetAssemblyPath("Regulus.Remote.dll"), _GetAssemblyPath("Regulus.Serialization.dll"), _GetAssemblyPath("GhostProviderGeneratorTests.dll") } }; var result = provider.CompileAssemblyFromSource(options, codes.ToArray()); NUnit.Framework.Assert.IsTrue(result.Errors.Count == 0); }
private static void _Output(string outPath, System.Reflection.Assembly inputAssembly) { CodeBuilder builder = new Regulus.Remote.Protocol.CodeBuilder(); builder.ProviderEvent += (name, code) => _WriteProvider(name, code, outPath); builder.EventEvent += (type_name, event_name, code) => _WriteEvent(type_name, event_name, code, outPath); builder.GpiEvent += (type_name, code) => _WriteType(type_name, code, outPath); builder.Build(inputAssembly); }
public void _BuildGetTypeMethodInfoTestMethod3() { CodeBuilder builder = new Regulus.Remote.Protocol.CodeBuilder(); string source = "new Regulus.Utility.Reflection.TypeMethodCatcher((System.Linq.Expressions.Expression<System.Action<Regulus.Remote.Protocol.Tests.IInterface,System.Int32,System.Int32>>)((ins,_1,_2) => ins.Method3(_1,_2))).Method"; string code = builder._BuildGetTypeMethodInfo( typeof(IInterface).GetMethod(nameof(IInterface.Method3))); Assert.AreEqual(source, code); }