StructureMap регистр общих типов против всех возможных конкретных реализацийC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 StructureMap регистр общих типов против всех возможных конкретных реализаций

Сообщение Anonymous »

У меня есть следующее: < /p>

Код: Выделить всё

public interface ICommand { }
public class AddUser : ICommand
{
public string Name { get; set; }
public string Password { get; set; }
}

public interface ICommandHandler : IHandler where T : ICommand
{
void Execute(T command);
}

public class AddUserHandler : ICommandHandler
{
public void Execute(AddUser command)
{
Console.WriteLine("{0}: User added: {1}", GetType().Name, command.Name);
}
}

public class AuditTrailHandler : ICommandHandler
{
public void Execute(ICommand command)
{
Console.WriteLine("{0}: Have seen a command of type {1}", GetType().Name, command.GetType().Name);
}
}
< /code>
Я хотел бы использовать сканирование для регистрации icommandhandler , чтобы я получил следующие типы в контейнере: < /p>
[list]
[*]ICommandHandler
с конкретным типом AdduserHandler
[*]

Код: Выделить всё

ICommandHandler
с конкретным типом Audittrailhandler
[/list]
Я попробовал это с помощью реализации IregistrationConvention, и в один момент я работал, но я просто не могу понять, как я это сделал.

Код: Выделить всё

// A method in CommandDispatcher
public void SendCommand(T command) where T : ICommand {
var commandHandlers = container.GetAllInstances();
foreach (var commandHandler in commandHandlers) {
commandHandler.Execute(command);
}
}
Я хочу, чтобы AuditTrailHandler выполнить для всех конкретных реализаций Icommand, следовательно, необходимость регистрировать их для всех типов Icommand. Структура, которую я имею сейчас. Докажите, что я не так, если у вас есть идеи.

Подробнее здесь: https://stackoverflow.com/questions/473 ... ementation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»