当前位置: 首页>>代码示例>>C#>>正文


C# JintEngine.SetFunction方法代码示例

本文整理汇总了C#中JintEngine.SetFunction方法的典型用法代码示例。如果您正苦于以下问题:C# JintEngine.SetFunction方法的具体用法?C# JintEngine.SetFunction怎么用?C# JintEngine.SetFunction使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在JintEngine的用法示例。


在下文中一共展示了JintEngine.SetFunction方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Main

        static void Main(string[] args)
        {
            string line;
            var jint = new JintEngine();

            jint.SetFunction("print", new Action<object>(s => { Console.ForegroundColor = ConsoleColor.Blue; Console.Write(s); Console.ResetColor(); }));
            #pragma warning disable 612,618
            jint.SetFunction("import", new Action<string>(s => { Assembly.LoadWithPartialName(s); }));
            #pragma warning restore 612,618
            jint.DisableSecurity();

            while (true) {
                Console.Write("jint > ");

                StringBuilder script = new StringBuilder();

                while (String.Empty != (line = Console.ReadLine())) {
                    if (line.Trim() == "exit") {
                        return;
                    }

                    if (line.Trim() == "reset") {
                        jint = new JintEngine();
                        break;
                    }

                    if (line.Trim() == "help" || line.Trim() == "?") {
                        Console.WriteLine(@"Jint Shell");
                        Console.WriteLine(@"");
                        Console.WriteLine(@"exit                - Quits the application");
                        Console.WriteLine(@"import(assembly)    - assembly: String containing the partial name of a .NET assembly to load");
                        Console.WriteLine(@"reset               - Initialize the current script");
                        Console.WriteLine(@"print(output)       - Prints the specified output to the console");
                        Console.WriteLine(@"");
                        break;
                    }

                    script.AppendLine(line);
                }

                Console.SetError(new StringWriter(new StringBuilder()));

                try {
                    jint.Execute(script.ToString());
                }
                catch (Exception e) {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(e.Message);
                    Console.ResetColor();
                }

                Console.WriteLine();
            }
        }
开发者ID:pvginkel,项目名称:Jint2,代码行数:54,代码来源:Program.cs

示例2: ShouldNotRunInRun

        public void ShouldNotRunInRun()
        {
            var filename = Path.GetTempFileName();
            File.WriteAllText(filename, "a='bar'");

            var engine = new JintEngine().AddPermission(new FileIOPermission(PermissionState.None));
            engine.AllowClr();
            engine.SetFunction("load", new Action<string>(p => engine.ExecuteFile(p)));
            engine.SetFunction("print", new Action<string>(Console.WriteLine));
            engine.Execute("var a='foo'; load('" + EscapeStringLiteral(filename) + "'); print(a);");
        }
开发者ID:pvginkel,项目名称:Jint2,代码行数:11,代码来源:EngineTests.cs

示例3: MainPage

        // Constructor
        public MainPage()
        {
            InitializeComponent();

            engine = new JintEngine();
            engine.SetFunction("alert", new Action<string>(t => MessageBox.Show(t)));
        }
开发者ID:joelmartinez,项目名称:Jint.Phone,代码行数:8,代码来源:MainPage.xaml.cs

示例4: ShouldRunInRun

        public void ShouldRunInRun()
        {
            var filename = Path.GetTempFileName();
            File.WriteAllText(filename, "a='bar'");

            var engine = new JintEngine().AddPermission(new FileIOPermission(PermissionState.Unrestricted));
            engine.AllowClr();

            // The DLR compiler won't compile with permissions set
            engine.DisableSecurity();

            engine.SetFunction("load", new Action<string>(p => engine.ExecuteFile(p)));
            engine.SetFunction("print", new Action<string>(Console.WriteLine));
            engine.Execute("var a='foo'; load('" + EscapeStringLiteral(filename) + "'); print(a);");

            File.Delete(filename);
        }
开发者ID:pvginkel,项目名称:Jint2,代码行数:17,代码来源:EngineTests.cs

示例5: ExecuteV8

        private static void ExecuteV8()
        {
            const string fileName = @"..\..\..\Jint.Benchmarks\Suites\V8\raytrace.js";

            var jint = new JintEngine();

            jint.DisableSecurity();

            jint.ExecuteFile(@"..\..\..\Jint.Benchmarks\Suites\V8\base.js");

            jint.SetFunction(
                "NotifyResult",
                new Action<string, string>((name, result) => { })
            );
            jint.SetFunction(
                "NotifyError",
                new Action<string, object>((name, error) => { })
            );

            string score = null;

            jint.SetFunction(
                "NotifyScore",
                new Action<string>(p => { score = p; })
            );

            jint.ExecuteFile(fileName);

            Console.WriteLine("Attach");
            Console.ReadLine();

            jint.Execute(@"
                BenchmarkSuite.RunSuites({
                    NotifyResult: NotifyResult,
                    NotifyError: NotifyError,
                    NotifyScore: NotifyScore,
                    Runs: 1
            });");

            Console.WriteLine("Score: " + score);
        }
开发者ID:pvginkel,项目名称:Jint2,代码行数:41,代码来源:Program.cs

示例6: ShouldRunInRun

        public void ShouldRunInRun() {
            var filename = Path.GetTempFileName();
            File.WriteAllText(filename, "a='bar'");

            var engine = new JintEngine().AddPermission(new FileIOPermission(PermissionState.Unrestricted));
            engine.AllowClr();
            engine.SetFunction("load", new Action<string>(delegate(string fileName) { using (var reader = File.OpenText(fileName)) { engine.Run(reader); } }));
            engine.SetFunction("print", new Action<string>(Console.WriteLine));
            engine.Run("var a='foo'; load('" + JintEngine.EscapteStringLiteral(filename) + "'); print(a);");

            File.Delete(filename);
        }
开发者ID:arelee,项目名称:ravendb,代码行数:12,代码来源:Fixtures.cs

示例7: ObjectShouldBePassedToDelegates

        public void ObjectShouldBePassedToDelegates() {
            var engine = new JintEngine();
            engine.SetFunction("render", new Action<object>(s => Console.WriteLine(s)));

            const string script =
                @"
                var contact = {
                    'Name': 'John Doe',
                    'PhoneNumbers': [ 
                    {
                       'Location': 'Home',
                       'Number': '555-555-1234'
                    },
                    {
                        'Location': 'Work',
                        'Number': '555-555-9999 Ext. 123'
                    }
                    ]
                };

                render(contact.Name);
                render(contact.toString());
                render(contact);
            ";

            engine.Run(script);
        }
开发者ID:arelee,项目名称:ravendb,代码行数:27,代码来源:Fixtures.cs

示例8: CreateContext

        protected virtual JintEngine CreateContext(Action<string> errorAction)
        {
            var ctx = new JintEngine();

            Action<string> failAction = Assert.Fail;
            Action<string> printAction = message => Trace.WriteLine(message);
            Action<string> includeAction = file => RunInclude(ctx, file);

            ctx.SetFunction("$FAIL", failAction);
            ctx.SetFunction("ERROR", errorAction);
            ctx.SetFunction("$ERROR", errorAction);
            ctx.SetFunction("$PRINT", printAction);
            ctx.SetFunction("$INCLUDE", includeAction);

            return ctx;
        }
开发者ID:pvginkel,项目名称:Jint2,代码行数:16,代码来源:ScriptTestBase.cs


注:本文中的JintEngine.SetFunction方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。