本文整理汇总了C#中JintEngine.DisableSecurity方法的典型用法代码示例。如果您正苦于以下问题:C# JintEngine.DisableSecurity方法的具体用法?C# JintEngine.DisableSecurity怎么用?C# JintEngine.DisableSecurity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JintEngine
的用法示例。
在下文中一共展示了JintEngine.DisableSecurity方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: 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);
}
示例3: 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);
}