IObjectVmFactory objectVMFactory = this.Container.Resolve<IObjectVmFactory>();
Это генерирует исключение NullReferenceException.Назначение генерирует System.NullReferenceException
Если я не присвоить результат this.Container.Resolve
переменной, она не бросает:
this.Container.Resolve<IObjectVmFactory>().AnyMethod(...)
Это не имеет никакого смысла для меня ... кто-то может дать мне какое-то объяснение?
Дополнительная информация:
this.Container
не равно нулю точно. Тройка проверена. И если это было нулевым, вторая строка потерпит неудачу.
Класс, реализующий IObjectVmFactory
, не имеет определенного конструктора, поэтому исключение не происходит внутри реализации IObjectVmFactory
.
Исключение не имеет внутренних исключений и указывает непосредственно на первую строку.
Выполнение строки непосредственно в промежуточном окне создает сообщение ('' is null).
Спасибо!
Первый - это 'this.Container.Resolve();' while second this is this.Container.Resolve (). CreateInstance (...) '. Сам код объясняет, что первый из них не создает экземпляр его, а второй. Следовательно, оно самоочевидно. –
ViVi
Вы уверены, что 'Container' не' null'? Откуда возникает «NullReferenceException»? – Haukinger
Сначала создается экземпляр IObjectVmFactory, второй - также. Единственное отличие состоит в том, что в первом случае я назначаю экземпляр, разрешенный единством в переменной. Контейнер в порядке, но не null. –