Я вижу странное поведение при попытке зарегистрировать WPF ICommands с помощью Castle Windsor.
При запуске включенного кода я получаю следующую ошибку:
Невозможно создать компонент 'ConsoleApplication1.TestParent', так как он имеет зависимости, которые должны быть удовлетворены.
ConsoleApplication1.TestParent ожидает следующих зависимостей:
Ключи (компоненты с определенными ключами)
- testChild, который не был зарегистрирован.
Однако, если я изменю интерфейс на TestChild с ICommand на ITest, тогда код будет работать нормально.
Кто-нибудь еще был свидетелем такого поведения и / или знает, как его решить?
Я использую VS2008, .NET 3.5 и Castle 2.5.2.
Спасибо, Стюарт
using System;
using System.Windows.Input;
using Castle.MicroKernel.Registration;
using Castle.Windsor;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
var container = new WindsorContainer();
container.Register(
Component.For().ImplementedBy(),
Component.For().ImplementedBy()
);
var parent = container.Resolve();
}
}
public interface ITest {}
public class TestParent
{
public TestParent(TestChild testChild) { }
}
public class TestChild : ICommand
{
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter) { return true; }
public void Execute(object parameter) {}
}
}