Я тестирую Windsor.Castle для разрешения моих общих компонентов.Регистрация общих компонентов в Windsor.Castle: разница в поведении между Type.GetType и typeof
Я конфигурирование моего контейнера с линиями, как следующее:
container.Register(Component.For(typeof(ICommand<,>)).ImplementedBy(Type.GetType("WCExp.Test.GetAllCommand`2")).Named("GetAllCommand"));
container.Register(Component.For(typeof(ICommand<,>)).ImplementedBy(typeof(WindsorCastleExperiments.Implementations.GetAllCommand<,>)).Named("GetAllCommandOriginal"));
Как вы можете видеть ImplementedBy предусмотрен типом, либо через Type.GetType() или через TYPEOF().
Теперь, когда я тестировал, я заметил, что иногда зарегистрированная служба не является классом реализации, а интерфейсом.
Сообщение об ошибке: Ошибка при создании экземпляра ICommand ... является абстрактным. (оставлена строка полного типа)
Возможно ли, что при использовании Type.GetType() иногда может возвращаться интерфейс для заданной строки типа, даже если заданная строка типа является определением типа класса?
Таким образом, можно
Type.GetType("WCExp.Test.GetAllCommand`2")
возвращают интерфейс ICommand <,> ...?
Это происходило для классов, которые находились в зависимой сборке. Для классов в той же сборке, как я настройка этой проблемы не представлял себя
Полных источники (пока?): https://github.com/schwarzie2478/WindsorCastleExperiments