Я пытаюсь использовать SystemWrapper, чтобы иметь возможность имитировать файловый ввод-вывод и другие стандартные методы MS, для которых я писал свои собственные оболочки. Тем не менее, я обнаружил, что у Castle Windsor, IO C, который я использую, есть проблемы с ним.
Я специально работаю с IDirectoryInfo и DirectoryInfoWrap, которые его реализуют. Я зарегистрировался как любой другой интерфейс:
container.Register(Component.For<IDirectoryInfo, DirectoryInfoWrap>());
Я даже сделал так:
container.Register(Component.For<IDirectoryInfo>().ImplementedBy<DirectoryInfoWrap>());
Но когда я запускаю свое приложение, я получаю это:
Невозможно создать компонент 'SystemWrapper.IO.DirectoryInfoWrap', так как он имеет зависимости, которые должны быть удовлетворены.
'SystemWrapper.IO.DirectoryInfoWrap' ожидает следующие зависимости: - Служба 'System.IO.DirectoryInfo 'который не был зарегистрирован. - Параметр «путь», который не был указан. Вы забыли установить зависимость?
Это не имеет смысла для меня. Почему он думает, что обычный DIrectoryInfo - это «сервис», который нужно зарегистрировать? Для хихиканья я попытался зарегистрировать DirectoryInfo в DirectoryInfoWrap, но это дало мне следующее:
Типы System.IO.DirectoryInfo и SystemWrapper.IO.DirectoryInfoWrap не связаны. Это не разрешено. Вы уверены, что хотите сделать их обеими службами на одном компоненте? Имя параметра: x
Если кто-то работал до этого, пожалуйста, дайте мне знать. Если этого не произойдет, я просто продолжу писать обертки от руки.
Спасибо