本文整理汇总了C#中Microsoft.Scripting.Hosting.ScriptRuntime类的典型用法代码示例。如果您正苦于以下问题:C# ScriptRuntime类的具体用法?C# ScriptRuntime怎么用?C# ScriptRuntime使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
ScriptRuntime类属于Microsoft.Scripting.Hosting命名空间,在下文中一共展示了ScriptRuntime类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestRuntime
public TestRuntime(Driver/*!*/ driver, TestCase/*!*/ testCase) {
_driver = driver;
_testName = testCase.Name;
if (_driver.SaveToAssemblies) {
Environment.SetEnvironmentVariable("DLR_AssembliesFileName", _testName);
}
var runtimeSetup = ScriptRuntimeSetup.ReadConfiguration();
LanguageSetup languageSetup = null;
foreach (var language in runtimeSetup.LanguageSetups) {
if (language.TypeName == typeof(RubyContext).AssemblyQualifiedName) {
languageSetup = language;
break;
}
}
runtimeSetup.DebugMode = _driver.IsDebug;
languageSetup.Options["InterpretedMode"] = _driver.Interpret;
languageSetup.Options["Verbosity"] = 2;
languageSetup.Options["Compatibility"] = testCase.Compatibility;
_env = Ruby.CreateRuntime(runtimeSetup);
_engine = Ruby.GetEngine(_env);
_context = Ruby.GetExecutionContext(_engine);
}
示例2: Start
public void Start()
{
try
{
_runtime = ScriptRuntime.CreateFromConfiguration();
// this reads from app.config for configured Dynamic Language Runtime libraries
// now get all the file extensions of scripting types, as creatted from the Configuration
foreach (LanguageSetup ls in _runtime.Setup.LanguageSetups)
{
foreach (string fext in ls.FileExtensions)
{
_scriptingManager.RegisterLanguageExtensions(this, fext);
}
}
IEnumerable<string> lg = from setup in _runtime.Setup.LanguageSetups
select setup.Names[0];
foreach (string ln in lg)
_scriptingManager.RegisterLanguageNames(this, ln);
_scopevariables = new ScopeVariables();
// setup the initial scopevariables that are shared by all scopes
_librarypaths = new List<string>();
// list of Lib directories, or others that contain standard libraries for this script collection
}
catch (Exception ex)
{
_scriptingManager.IsScriptEngineActive = false;
CompositionManager.Get<IExceptionReporter>().ReportHandledException(ex);
}
}
示例3: Page
public Page()
{
InitializeComponent();
string code = @"
def function(string):
return string.upper()";
ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
setup.HostType = typeof(Microsoft.Scripting.Silverlight.BrowserScriptHost);
setup.Options["SearchPaths"] = new string[] { string.Empty };
ScriptRuntime runtime = new ScriptRuntime(setup);
ScriptEngine pe = Python.GetEngine(runtime);
// load platform assemblies so you don't need to call LoadAssembly in script code.
foreach (string name in new string[] { "mscorlib", "System", "System.Windows", "System.Windows.Browser", "System.Net" })
{
runtime.LoadAssembly(runtime.Host.PlatformAdaptationLayer.LoadAssembly(name));
}
ScriptScope scope = pe.CreateScope();
ScriptSource source = pe.CreateScriptSourceFromString(code, SourceCodeKind.Statements);
source.Execute(scope);
Func<string, string> func = scope.GetVariable<Func<string, string>>("function");
string result = func("hello world!");
textblock.Text = result;
}
示例4: LoadReferencedAssembliesIntoEnvironment
private static void LoadReferencedAssembliesIntoEnvironment(ScriptRuntime environment)
{
// Make sure we're running with a System.Web.dll that has the new API's we need
UI.NoCompileCodePageParserFilter.CheckCorrectSystemWebSupport();
// Call BuildManager.GetReferencedAssemblies(), either the one that returns an array or an ICollection,
// depending on what's available.
// TODO: this is a temporary workaround for bug VSWhidbey 607089. Once fix, we should always call
// the one that returns an ICollection.
ICollection referencedAssemblies = null;
GetReferencedAssembliesReturnCollection getReferencedAssembliesCollection =
(GetReferencedAssembliesReturnCollection)GetGetReferencedAssembliesDelegate(
typeof(GetReferencedAssembliesReturnCollection));
if (getReferencedAssembliesCollection != null) {
referencedAssemblies = getReferencedAssembliesCollection();
} else {
GetReferencedAssembliesReturnArray getReferencedAssembliesArray =
(GetReferencedAssembliesReturnArray)GetGetReferencedAssembliesDelegate(
typeof(GetReferencedAssembliesReturnArray));
Debug.Assert(getReferencedAssembliesArray != null);
if (getReferencedAssembliesArray != null) {
referencedAssemblies = getReferencedAssembliesArray();
}
}
if (referencedAssemblies != null) {
// Load all the BuildManager assemblies into the engine
foreach (Assembly a in referencedAssemblies) {
environment.LoadAssembly(a);
}
}
}
示例5: PythonConverser
internal PythonConverser(Socket socket, IEnumerable<NameBinding> nameBindings)
: base(socket)
{
_ScriptRuntime = IronPython.Hosting.Python.CreateRuntime();
InitialiseScriptRuntime(socket);
BindScriptScopeNames(nameBindings);
}
示例6: GetEngine
public ScriptEngine GetEngine()
{
if (_engine != null)
return _engine;
_engine = Python.CreateEngine();
ScriptRuntimeSetup setup = new ScriptRuntimeSetup();
setup.DebugMode = true;
setup.LanguageSetups.Add(Python.CreateLanguageSetup(null));
ScriptRuntime runtime = new ScriptRuntime(setup);
_engine = runtime.GetEngineByTypeName(typeof(PythonContext).AssemblyQualifiedName);
_engine.Runtime.IO.SetOutput(_stream, Encoding.UTF8);
_engine.Runtime.IO.SetErrorOutput(_stream, Encoding.UTF8);
string path = Environment.CurrentDirectory;
string ironPythonLibPath = string.Format(@"{0}\IronPythonLib.zip", path);
var paths = _engine.GetSearchPaths() as List<string> ?? new List<string>();
paths.Add(path);
paths.Add(ironPythonLibPath);
path = Environment.GetEnvironmentVariable("IRONPYTHONPATH");
if (!string.IsNullOrEmpty(path))
{
var pathStrings = path.Split(';');
paths.AddRange(pathStrings.Where(p => p.Length > 0));
}
_engine.SetSearchPaths(paths.ToArray());
return _engine;
}
示例7: Main
static void Main(string[] args)
{
try {
ScriptRuntimeSetup setup = ScriptRuntimeSetup.ReadConfiguration();
ScriptRuntime runtime = new ScriptRuntime(setup);
runtime.GetEngine("Python").Execute("print \"Hello, Hosted Script World!\"");
//runtime.ExecuteFile(PYTHON_FILE);
//ScriptScope scope = runtime.GetEngine("Python").CreateScope();
//scope.SetVariable("name", "John Zablocki");
#region func
//Func<string, string> reverse = (s) => {
// string reversed = "";
// for (int i = s.Length - 1; i >= 0; i--) {
// reversed += s[i];
// }
// return reversed;
// };
//scope.SetVariable("reverse", reverse);
#endregion
//runtime.GetEngine("Python").ExecuteFile(PYTHON_FILE, scope);
} catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
示例8: initRuby
private void initRuby()
{
ScriptRuntimeSetup runtimeSetup = ScriptRuntimeSetup.ReadConfiguration();
var languageSetup = IronRuby.RubyHostingExtensions.AddRubySetup(runtimeSetup);
runtimeSetup.DebugMode = false;
runtimeSetup.PrivateBinding = false;
runtimeSetup.HostType = typeof(RhoHost);
languageSetup.Options["NoAdaptiveCompilation"] = false;
languageSetup.Options["CompilationThreshold"] = 0;
languageSetup.Options["Verbosity"] = 2;
m_runtime = IronRuby.Ruby.CreateRuntime(runtimeSetup);
m_engine = IronRuby.Ruby.GetEngine(m_runtime);
m_context = (RubyContext)Microsoft.Scripting.Hosting.Providers.HostingHelpers.GetLanguageContext(m_engine);
m_context.ObjectClass.SetConstant("RHO_WP7", 1);
m_context.Loader.LoadAssembly("RhoRubyLib", "rho.rubyext.rubyextLibraryInitializer", true, true);
System.Collections.ObjectModel.Collection<string> paths = new System.Collections.ObjectModel.Collection<string>();
paths.Add("lib");
paths.Add("apps/app");
m_engine.SetSearchPaths(paths);
}
示例9: TestRuntime
public TestRuntime(Driver/*!*/ driver, TestCase/*!*/ testCase) {
_driver = driver;
_testName = testCase.Name;
if (testCase.Options.NoRuntime) {
return;
}
if (_driver.SaveToAssemblies) {
Environment.SetEnvironmentVariable("DLR_AssembliesFileName", _testName);
}
var runtimeSetup = ScriptRuntimeSetup.ReadConfiguration();
var languageSetup = runtimeSetup.AddRubySetup();
runtimeSetup.DebugMode = _driver.IsDebug;
runtimeSetup.PrivateBinding = testCase.Options.PrivateBinding;
languageSetup.Options["NoAdaptiveCompilation"] = _driver.NoAdaptiveCompilation;
languageSetup.Options["Verbosity"] = 2;
languageSetup.Options["Compatibility"] = testCase.Options.Compatibility;
_runtime = Ruby.CreateRuntime(runtimeSetup);
_engine = Ruby.GetEngine(_runtime);
_context = Ruby.GetExecutionContext(_engine);
}
示例10: RubyScriptingRuntime
public RubyScriptingRuntime() {
_defaultLanguageSetup = Ruby.CreateRubySetup();
var setup = new ScriptRuntimeSetup();
setup.LanguageSetups.Add(_defaultLanguageSetup);
_scriptingRuntime = new ScriptRuntime(setup);
}
示例11: Cons_NoArg1
public void Cons_NoArg1()
{
var srs = new ScriptRuntimeSetup();
Assert.AreEqual(0, srs.LanguageSetups.Count);
var sr = new ScriptRuntime(srs);
}
示例12: DlrContext
public DlrContext(ScriptRuntime runtime, IPathProvider pathProvider, string routesPath)
{
//_routesPath = routesPath;
Runtime = runtime;
PathProvider = pathProvider;
//Initialize();
}
示例13: Ruby
public Ruby()
{
//Setup the script engine runtime
var setup = new ScriptRuntimeSetup();
setup.LanguageSetups.Add(
new LanguageSetup(
"IronRuby.Runtime.RubyContext, IronRuby",
"IronRuby 1.0",
new[] { "IronRuby", "Ruby", "rb" },
new[] { ".rb" }));
setup.DebugMode = true;
//Create the runtime, engine, and scope
runtime = ScriptRuntime.CreateRemote(AppDomain.CurrentDomain, setup);
engine = runtime.GetEngine("Ruby");
scope = engine.CreateScope();
try
{
engine.Execute(@"$RGSS_VERSION = " + Program.GetRuntime().GetRGSSVersion(), scope);
engine.Execute(@"$GAME_DIRECTORY = '" + Program.GetRuntime().GetResourcePaths()[0].Replace(@"\", @"\\") + @"'", scope);
engine.Execute(@"$GAME_OS_WIN = " + Program.GetRuntime().IsWindowsOS().ToString().ToLower(), scope);
}
catch (Exception e)
{
Program.Error(e.Message);
}
//Load system internals and our Ruby internals
Console.WriteLine("Loading system");
//engine.Execute(System.Text.Encoding.UTF8.GetString(Properties.Resources.System), scope);
string script = System.Text.Encoding.UTF8.GetString(Properties.Resources.System);
script = script.Substring(1); //fix for a weird character that shouldn't be there o.O
Eval(script);
//Load the adaptable RPG datatypes
script = System.Text.Encoding.UTF8.GetString(Properties.Resources.RPG);
script = script.Substring(1);
Eval(script);
//Load the version appropriate RPG datatypes
if (Program.GetRuntime().GetRGSSVersion() == 1)
{
script = System.Text.Encoding.UTF8.GetString(Properties.Resources.RPG1);
script = script.Substring(1);
Eval(script);
}
if (Program.GetRuntime().GetRGSSVersion() == 2)
{
script = System.Text.Encoding.UTF8.GetString(Properties.Resources.RPG2);
script = script.Substring(1);
Eval(script);
}
if (Program.GetRuntime().GetRGSSVersion() == 3)
{
script = System.Text.Encoding.UTF8.GetString(Properties.Resources.RPG3);
script = script.Substring(1);
Eval(script);
}
}
示例14: Cons_NoArg2
public void Cons_NoArg2()
{
var srs = new ScriptRuntimeSetup();
var sr = new ScriptRuntime(srs);
Assert.Fail("shouldn't be able to create a runtime without any langsetups");
}
示例15: initRuby
private void initRuby()
{
ScriptRuntimeSetup runtimeSetup = ScriptRuntimeSetup.ReadConfiguration();
var languageSetup = IronRuby.RubyHostingExtensions.AddRubySetup(runtimeSetup);
runtimeSetup.DebugMode = false;
runtimeSetup.PrivateBinding = false;
runtimeSetup.HostType = typeof(RhoHost);
languageSetup.Options["NoAdaptiveCompilation"] = false;
languageSetup.Options["CompilationThreshold"] = 0;
languageSetup.Options["Verbosity"] = 2;
m_runtime = IronRuby.Ruby.CreateRuntime(runtimeSetup);
m_engine = IronRuby.Ruby.GetEngine(m_runtime);
m_context = (RubyContext)Microsoft.Scripting.Hosting.Providers.HostingHelpers.GetLanguageContext(m_engine);
m_context.ObjectClass.SetConstant("RHO_WP7", 1);
m_context.ObjectClass.AddMethod(m_context, "__rhoGetCallbackObject", new RubyLibraryMethodInfo(
new[] { LibraryOverload.Create(new Func<System.Object, System.Int32, System.Object>(RhoKernelOps.__rhoGetCallbackObject), false, 0, 0) },
RubyMethodVisibility.Public,
m_context.ObjectClass
));
m_context.Loader.LoadAssembly("RhoRubyLib", "rho.rubyext.rubyextLibraryInitializer", true, true);
System.Collections.ObjectModel.Collection<string> paths = new System.Collections.ObjectModel.Collection<string>();
paths.Add("lib");
paths.Add("apps/app");
m_engine.SetSearchPaths(paths);
}