代码之家  ›  专栏  ›  技术社区  ›  REA_ANDREW

如何使用结构图获取泛型类的所有实例

  •  4
  • REA_ANDREW  · 技术社区  · 16 年前

    在结构图中,我有以下处理域事件的行:

    public void Dispatch<TEvent>(TEvent eventToDispatch) where TEvent : IDomainEvent
            {
                foreach (var handler in ObjectFactory.GetAllInstances<IDomainEventHandler<TEvent>>())
                {
                    if (handler.IsActive)
                        handler.Handle(eventToDispatch);
                }
            }
    

    我正在这样的结构映射注册表中注册这些:

    x.AddAllTypesOf(typeof(IDomainEventHandler<>));
    

    上面的第一个块抛出一个未知的错误-结构图代码400。有人知道如何从strcuture映射容器中获取特定类型的泛型类吗?

    蒂亚

    安得烈

    1 回复  |  直到 16 年前
        1
  •  5
  •   Jeremy Wiebe Tomas Reimers    16 年前

    我要检查的第一件事是以下输出:

    Console.WriteLine(ObjectFactory.WhatDoIHave());
    

    确保按预期注册事件处理程序。

    如果类是按预期注册的,那么我认为这就是您希望如何解析IDomainEventHandler的:

    foreach (var handler in ObjectFactory.ForObject(eventToDispatch)
                                         .GetAllClosedTypesOf(typeof(IDomainEventHandler<>))
                                         .As<IDomainEventHandler<TEvent>>())
    
    推荐文章