c# - 按请求类型动态调用处理器
问题描述
也许我的问题很简单,但我变得很困惑,因为我对动态编程很陌生。
这是问题所在:我有一个名为 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}
解决方案
推荐阅读
- ruby-on-rails - has_many :通过 class_name 和 foreign_key 不起作用
- python - XGBoost 可重现的特征重要性分数
- hangfire - Hangfire每日执行时间表
- r - 在具有不同列名的文件夹中组合多个数据框
- angular - 组件名称被缩小
- javascript - 为什么导航器存储在 Safari ios 中不起作用
- angular8 - 使用离子隐藏“不再询问”复选框
- php - 无法在 MacOS Catalina 上升级 php 版本
- python - 两个 conda 环境冲突
- c++ - 当 E2 是引用类型时,表达式“E1.E2”表示实体是什么