Skip to content

原生程序调用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例子中找到

Clone this wiki locally