StructureMap注入GetInstance方法

时间:2018-02-16 13:45:01

标签: c# structuremap

我在项目中使用 structuremap ,并且针对特定需求,我希望能够访问structuremap中的 Container.GetInstance(Type type)方法。 考虑到洋葱建筑,我不想在我的解决方案的每个项目中引用nuget structuremap

所以我在一个核心项目中有一个课程,应该做那样的事情:

public class CommandDispatcherBase
{
    public async Task<TCommandResult> DispatchAsync<TCommand, TCommandResult>(TCommand command) 
    {
        // This line
        CommandHandler<TCommand> handler = GetInstance(typeof(CommandHandler<TCommand>)));
        handler.DoSomething();
    }
}

使用:

public abstract class CommandHandler<TCommand>
{
    // Some methods
}

并且:

public class RegisterUserHandler : CommandHandler<RegisterUserCommand>
{
    // Some methods
}

在我的bootstrap注册表中:

For<CommandHandler<RegisterUserCommand>>().Use<RegisterUserHandler>();

但我不知道该怎么做。理想情况下,我希望在我的 Core 项目中使用委托方法:

public delegate object CommandHandlerFactory(Type handlerType);

我会在其中注入 Container.GetInstance(类型类型)结构图方法,但我不知道该怎么做。

有什么想法吗? 非常感谢!

0 个答案:

没有答案