简体   繁体   English

如何在boo(Rhino DSL)中使用C#动态对象?

[英]How can i use c# dynamic object in boo (Rhino DSL)?

I am using Rhino DSL and when I want to pass a dynamic object into script, boo compiler throws the Exception below: BCE0019: Boo.Lang.Compiler.CompilerError: 'Percent' is not a member of 'object'. 我正在使用Rhino DSL,并且想将动态对象传递到脚本中时,boo编译器将引发以下异常: BCE0019:Boo.Lang.Compiler.CompilerError:'Percent'不是'object'的成员。

my boo code: 我的boo代码:

Result = Run().Percent

C# Dsl Base code for Run method: 运行方法的C#Dsl基本代码:

dynamic myDynamicObject;
public dynamic Run()
{

   //do somthing

   return myDynamicObject;
}
  • in Run method I set myDynamicObject to a class that inherits from DynamicObject and override TrySetValue & TryGetValue method 在运行方法中,将myDynamicObject设置为从DynamicObject继承的类,并重写TrySetValue和TryGetValue方法

Not sure how exactly 'Percent' is being called, or if Rhino.DSL is configured with ducky Boo as default, but you can try 'casting' as duck, eg (myobject as duck).Percent . 不知道如何准确地调用“ Percent”,或者不确定Rhino.DSL是否配置了默认的ducky Boo,但是您可以尝试将“ casting”作为duck,例如(myobject as duck).Percent See http://boo.codehaus.org/Duck+Typing for reference. 请参阅http://boo.codehaus.org/Duck+Typing以供参考。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM