- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有如下界面
public interface IHandler<T>
{
void Handle(T myObject);
}
我想要一个 HandlersManager
class with 持有对象类型与其相应处理程序之间的映射,但我不确定我应该如何定义持有此映射的对象。
例如,我想要的是:
typeof(string) --> instance of IHandler<string>
typeof(MyClass) --> instance of IHandler<MyClass>
到目前为止我得到的最好的东西是定义 Dictionary<Type, object>
用于映射,但在这种情况下,我必须将值转换为 IHandler<T>
每次我得到它。
是否有更好的解决方案或我完全错过的东西?
最佳答案
我怀疑您正在使用它来解决依赖关系。相反,请使用专用容器来为您处理这些问题。
如果你不想那样做,你想要这样的东西:
Dictionary<Type, object> dictionary;
IHandler<T> Resolve<T>() {
return (IHandler<T>)dictionary[typeof(T)];
}
没有任何其他方法可以使用泛型。
Is there a better solution or something that I have completely missed?
不,但是管理器类通常是代码味道。小心。
关于c# - T 之间的映射 --> IHandler<T>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9992159/
我有如下界面 public interface IHandler { void Handle(T myObject); } 我想要一个 HandlersManager class with 持
我在最近的项目中实现事件处理时遇到了困难。 我已验证 structuremap 正在正确扫描、组装和添加 EventHandlers Scan(cfg => {
我有一个 NServiceBus Saga看起来像这样 public class MySaga : Saga, IAmStartedBy
在 Caliburn.Micro 作者在文档中提到了这种可能性: documentation link IHandle inherits from a marker interface IHandle
请帮我解决这个异常。我在 oracle 11g 表单上运行它。我正在使用 DirectPrint.java (pjc)。检查点击here.我在 Forms Applet 版本是 11.1.2.0 上运
我是一名优秀的程序员,十分优秀!