1

在覆盖以下方法时,您将如何实现一种算法来选择正确的方法重载DynamicObject

bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
4

2 回答 2

2

如果此重载问题是由于转发到静态实现的方法。一个解决方案可能是让 dlr 为您完成工作。开源Dynamitey有一个静态方法,它创建所有 dlr 绑定代码,适当地缓存然后调用它,并且 dlr binder 执行重载解析。例子。此示例在重载解析中处理命名/可选参数和推断的泛型,但是 DynamicObject 不会在调用中公开显式泛型或引用参数。

于 2011-05-02T05:10:25.943 回答
1

这并不简单,因为您必须考虑隐式类型转换和可变长度参数(必须映射到数组)之类的事情。

Zentrum框架中的MethodCallResolver类提供了如何找到匹配方法的示例。

于 2011-08-25T11:50:22.653 回答