Цели и задачи.
Предположим, что есть команда
class MoveCommand(IMovingObject obj) : ICommand
{
public void Execute()
{
...
}
}
и интерфейс
interface IMovingObject
{
Point Location
{
get;
set;
}
Vector Velocity
{
get;
}
}
Необходимо написать код, который будет автоматически регистрировать зависимости для разрешения таких команд, чтобы можно было выполнять код вида:
Ioc.Resolve<ICommand>("Команды.Move", obj)
где obj - это объект типа IDictionary<string, object>.
Для свойств, для которых необходимо указать нестандартное поведение предусмотреть возможность указать стратегию разрешения явно, например, для свойства Velocity:
[Adapter(typeof(IMovingObject), "Velocity", ClassName.StaticMethod )]