Ошибка с уровнем задач Sharp Architecture: обработчик команды не найден для типа команды - PullRequest
0 голосов
/ 26 октября 2011

В настоящее время я использую Sharp Architecture 2.0 и с этим справляюсь очень хорошо. Но у меня возникла проблема с выполнением команд в слое Задачи. У меня есть следующие классы, связанные с моей Командой:

SaveOptionStep1Command , который реализует CommandBase и SaveOptionStep1CommandHandler , который реализует
ICommandHandler и
SaveOptionStep1CommandResult , который реализует CommandResult

Когда я создаю команду, я получаю следующую ошибку и не могу определить, откуда возникла проблема.

ERROR
Не найден обработчик команды для типа команды: EasyOptions.Tasks.Commands.SaveOptionStep1Command

Описание: Произошло необработанное исключение во время выполнения текущего веб-запроса. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: SharpArch.Domain.Commands.CommandHandlerNotFoundException: не найден обработчик команды для типа команды: EasyOptions.Tasks.Commands.SaveOptionStep1Command

Вот Githubu Gist моего кода: https://gist.github.com/1314136

Ответы [ 2 ]

0 голосов
/ 27 мая 2013

У меня была такая же проблема с SharpArch 2.0.4. Потратив пару часов, играя с ComponentsRegistars.cs для регистрации компонентов Castle, я выяснил, что мне нужно изменить метод AddTasksTo. С моей точки зрения, поскольку команды в основном размещаются в инфраструктуре, они заменяют старую версию:

     container.Register(
        AllTypes
            .FromAssemblyNamed("v2.Tasks")
            .Pick().If(t => t.Name.EndsWith("Tasks"))
            .WithService.FirstNonGenericCoreInterface("v2.Domain"));

с этим:

 container.Register(
    AllTypes
        .FromAssemblyNamed("v2.Tasks")
        .Pick()
        .WithService.FirstNonGenericCoreInterface("v2.Domain"));

, который в конечном итоге выберет каждый элемент, я думаю.

Итак, с помощью первой версии проблема решена.

Спасибо

0 голосов
/ 26 октября 2011

Я обнаружил, что неправильно создавал хранилища.Я создавал свои репозитории с моим классом ClientRepository вместо того, чтобы обращаться к нему с помощью интерфейса IRepositoryWithTypedId.Как только я изменил, что мои репозитории и обработчики были правильно добавлены в мой Windsor Container без каких-либо проблем с зависимостями.Теперь он работает так, как мне нужно.

...