Exemple #1
0
        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);
        }
Exemple #3
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);
        }
Exemple #4
0
        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);
        }