如何使用Expression.Lamda调用方法

我在程序集Base.dll中具有以下接口

    public interface IMessageHander<in T>{
        void Handle(T msg);
    }

    public class MyBase<TChild> where TChild: MyBase<TChild>{
        private TChild Self => this as TChild;

        void CallMethods(){
            // how to call implemented interfaces handlers??
            // Self.Handle(msg1); 
            // Self.Handle(msg2)
        }
    }

有人引用Base.dll并编写以下代码

    public class Msg1{}
    public class Msg2{}
    public class Msg3{}

    public class MyHandler: IMessageHander<Msg1>,IMessageHander<Msg2>,IMessageHander<Msg3>
    {
        void Handle(Msg1 msg){}
        void Handle(Msg2 msg){}
        void Handle(Msg3 msg){}
    }

在Base.Dll中,通过反射,我能够找到实现了哪些接口以及要传递的接口的泛型类型,即所有消息类型及其对应的处理程序。我希望能够使用Expression.Lambda来调用它们。我该怎么做?

我不想使用我已经知道的反射。请查看此问题作为背景How to create object dynamically

我仅以基本对象的形式接收要作为消息传递的对象。

zrchuo 回答:如何使用Expression.Lamda调用方法

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3143581.html

大家都在问