首页 > 解决方案 > 按请求类型动态调用处理器

问题描述

也许我的问题很简单,但我变得很困惑,因为我对动态编程很陌生。

这是问题所在:我有一个名为 IGame 的接口。我还有另外两个接口 IGameRequest 和 IGameProcessor。

public interface IGame {}
public interface IGameRequest: IGame {}
public interface IGameProcessor: IGame
{ void process();}

public interface IKidGameRequest : IGameRequest {}
public interface IKidGameProcessor : IGameProcessor 
{ void process();}

另一方面,

public class KidGameRegistrationRequest : IKidRelatedRequest {//something}

所以总的来说我有下面的东西

                         IGame
                   |                    |
              IGameRequest         IGameProcessor
                   |                     |
            IKidGameRequest        **IKidGameProcessor**
                   |                     
           **KidGameRegistrationRequest **

当我在运行时收到 KidGameRegistrationRequest 时,我尝试查找 KidGameProcessor。

我试图获取所有程序集并搜索任何带有Kid名称的程序集并防止任何静态字符串,我添加了一个枚举类GameType并且我设法找到了正确的处理器,但我坚持在运行时调用该方法。

Public enum GameType {Kid}

标签: c#dynamic-programming

解决方案


推荐阅读