Methods C语言中的镜像方法#
有什么方法可以用来从另一个类镜像任何方法吗? i、 eMethods C语言中的镜像方法#,methods,reflection,Methods,Reflection,有什么方法可以用来从另一个类镜像任何方法吗? i、 e 我可以动态调用Reflector.Func_888(),如果在那里找不到该方法,然后它应该在MyMethods中搜索并执行该操作。您可以从DynamicObject继承,然后在TryInvokeMember的重载范围内,当MyMethods不存在时,将调用转发到MyMethods,但这将涉及dynamic和DLR@pinkfloydx33谢谢,但是没有例子,我是C#的新手,不太明白你的意思。如果你发布一个完整的答案,并且它有帮助,我会选择答
我可以动态调用
Reflector.Func_888()代码>,如果在那里找不到该方法,然后它应该在MyMethods
中搜索并执行该操作。您可以从DynamicObject
继承,然后在TryInvokeMember
的重载范围内,当MyMethods
不存在时,将调用转发到MyMethods
,但这将涉及dynamic
和DLR@pinkfloydx33谢谢,但是没有例子,我是C#的新手,不太明白你的意思。如果你发布一个完整的答案,并且它有帮助,我会选择答案。不幸的是,我在我的手机上,或者我会。基本上,DynamicObject类拦截对方法调用、属性集/获取等的调用,让您决定如果关联成员不存在该怎么做。它涉及到在调用站点使用dynamic关键字,这也意味着它涉及到运行时的DLR(如果您担心这一点,可能会影响性能)。此时的一些示例可能继承自DynamicObject
,然后在TryInvokeMember
的重载范围内转发对MyMethods
的调用(当它们不存在时),但这将涉及dynamic
和DLR@pinkfloydx33谢谢,但是没有例子,我对C#是新手,不太懂,你是什么意思。如果你发布一个完整的答案,并且它有帮助,我会选择答案。不幸的是,我在我的手机上,或者我会。基本上,DynamicObject类拦截对方法调用、属性集/获取等的调用,让您决定如果关联成员不存在该怎么做。它涉及到在调用站点使用dynamic关键字,这也意味着它涉及到运行时的DLR(如果您担心这一点,可能会影响性能)。一些例子在
public class MyMethods
{
public static double Func_1
{
}
public static double Func_2
....
....
....
}
public class Reflector
{
// any call to this class, should be redirected to MyMethods
public SOMETHING_AUTOLOADER_OR_LIKE_THAT{
...
}
}