-
Notifications
You must be signed in to change notification settings - Fork 30
原生程序调用C#Light
lightszero edited this page Oct 16, 2014
·
5 revisions
原生程序调用C#Light
一种可以编写一个字符串表达式,编译并执行此表达式即可 通过CLS_Environment的如下接口完成
IList ParserToken(string code);//词法处理
ICLS_Expression Expr_CompilerToken(IList listToken, bool SimpleExpression = false);//编译为表达式
CLS_Content.Value Expr_Execute(ICLS_Expression expr, CLS_Content content = null);//执行表达式
另一种可以通过形如反射的方式调用 注册给脚本的类型,和脚本中定义的类型,使用方法是一致的。 都可以通过类似反射的方式调用 比如要操作脚本中的类型 XXX,和注册给脚本的c#类型Debug,其实没有区别 先通过CLS_Environment的如下接口获取类型
public ICLS_Type GetTypeByKeyword(string keyword)
var type = GetTypeByKeyword("XXX");
var type = GetTypeByKeyword("Debug");
然后就可以呼叫此类型的静态函数,或者构造此类型的实例,再调用实例的函数。
type.function.StaticCall(...)//呼叫类型的静态函数
var value =type.function.New(...)//创建类型的实例
type.function.MemberCall(...,value.value,...);//调用此实例的成员函数
type.function.MemberValueSet(..., object object_this, ...);//修改此实例的成员变量
这两种调用方式 你都可以在unity的framework例子中找到