Skip to content

AddCustomBinderObject

暴露对象的公共成员,使编译表达式可以访问它们。

语法:service.AddCustomBinderObject name, object [ , flags ]

service
必需 计算结果为 TbExpressionService 对象的对象表达式。
name
必需 一个 String,给出 object 的成员对 service 编译的表达式可见时的限定名。
object
必需 要暴露公共成员的对象。
flags
可选 ExpressionEngineBinderFlags 值的组合。默认为 0,此时对象的成员仅当由 name 限定时才可访问(例如 Report.Title)。传入 IsAppObject 可以使成员无需限定即可访问,类似于 Office 宿主的 Application 成员。

成员解析通过标准 COM/IDispatch 协议按名称执行——任何可从对象外部调用的属性或方法都可从表达式中调用。只要可能对表达式求值,对象就必须保持活动状态。

多个对象可以绑定到同一服务,每个对象有自己的 name。按添加顺序查询。

示例

此示例暴露宿主的报表对象,使表达式可以通过限定名或裸名引用其属性。

vb
Dim Service As TbExpressionService = New TbExpressionService
Service.AddStdLibraryBinder()
Service.AddCustomBinderObject "Report", Me, IsAppObject

Debug.Print Service.Compile("Report.Title").Evaluate()    ' "Sales Q4"
Debug.Print Service.Compile("Title").Evaluate()           ' "Sales Q4" — IsAppObject in effect

另请参阅

twinBASIC及其LOGO版权为作者"韦恩"所有