也许我的问题很容易,但是我变得很困惑,因为我对动态编程还很陌生。
这是问题所在: 我有一个称为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}