Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
Kendi uygulamam ile ScriptEngine nesnesinin haberleşebilmesi için kullanılır. Şöyle yaparız.
CreateSession metodu
Şöyle yaparız.
Belirtilen expression'ı çalıştırır.
Örnek ver
Execute metodu - epxression + session
Belirtilen expression'ı belirtilen session ile çalıştırır. Böylece birden fazla expression aynı session nesnesini paylaşabilir.
Örnek ver
ExecuteFile metodu
Örnek ver
-------------------------
Python
Python scripti şöyle yüklenir.
Şu satırı dahil ederiz.
using Roslyn.Compilers;
using Roslyn.Compilers.CSharp;
using Roslyn.Scripting;
using Roslyn.Scripting.CSharp;
ConstructorŞöyle yaparız.
var session = Session.Create();
var engine = new ScriptEngine();
engine.Execute("using System;", session);
engine.Execute("double Sin(double d) { return Math.Sin(d); }", session);
engine.Execute("MessageBox.Show(Sin(1.0));", session);
Constructor - host nesneKendi uygulamam ile ScriptEngine nesnesinin haberleşebilmesi için kullanılır. Şöyle yaparız.
public class MyHostObject
{
public List<int> list_of_ints;
public int an_int = 23;
}
var hostObject = new MyHostObject();
hostObject.list_of_ints = new List<int>();
hostObject.list_of_ints.Add(2);
var engine = new ScriptEngine(new[] { hostObject.GetType().Assembly.Location });
// passing reference to hostObject upon session creation
var session = Session.Create(hostObject);
// prints `24` to console
engine.Execute(@"System.Console.WriteLine(an_int + list_of_ints.Count);",
session);
CreateSession metodu
Şöyle yaparız.
ScriptEngine roslynEngine = new ScriptEngine();
Roslyn.Scripting.Session session = roslynEngine.CreateSession(this);
Execute metodu - epxressionBelirtilen expression'ı çalıştırır.
Örnek ver
Execute metodu - epxression + session
Belirtilen expression'ı belirtilen session ile çalıştırır. Böylece birden fazla expression aynı session nesnesini paylaşabilir.
Örnek ver
ExecuteFile metodu
Örnek ver
-------------------------
Python
Python scripti şöyle yüklenir.
//Basic engine to run python script. - Part1
ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromFile("/python.py");
ScriptScope scope = engine.CreateScope();
source.Execute(scope);
Script içinde bir Python class'ı vardır. Bu sınıfın bir metodu şöyle çağrılır.//Part2
Object myclass = engine.Operations.Invoke(scope.GetVariable("pythonScriptClass"));
object[] parameters = new object[] { "Hi",3 };
engine.Operations.InvokeMember(myclass, "theMethod", parameters);
Hiç yorum yok:
Yorum Gönder