문제

How would you implement an algorithm to choose the correct method overload, when overriding the following method on DynamicObject?

bool TryInvokeMember(InvokeMemberBinder binder, object[] args, out object result)
도움이 되었습니까?

해결책

If this overload issue is due to forwarding to statically implemented methods. A solution could be to just let the dlr do the work for you. Open source Dynamitey has a static method that creates all the dlr binding code, caches appropriately and then invokes it and the dlr binder does overload resolution. example. This example handles named/optional params and inferred generics in the overload resolution, however DynamicObject does not expose explict generics or ref out params in the invocation.

다른 팁

It's not straightforward as you have to take into account things like implicit type conversion and variable length parameters (which must be mapped to arrays).

The MethodCallResolver class in the Zentrum framework provides an example of how to find a matching method.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top