本文整理汇总了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();
}
}
示例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);");
}
示例3: MainPage
// Constructor
public MainPage()
{
InitializeComponent();
engine = new JintEngine();
engine.SetFunction("alert", new Action<string>(t => MessageBox.Show(t)));
}
示例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);
}
示例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);
}
示例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);
}
示例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);
}
示例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;
}