Мне нужно создать объект из AutoFixture, используя не что иное, как System.Type. Однако не существует перегрузки CreateAnonymous()
, которая просто берет тип. Они все ожидают компиляционного времени T. Есть ли способ конвертировать System.Type в T?
Изменить с помощью сведений об использовании:
Я использую AutoMapper, у которого есть крючок для инъекции компонентов для поддержки сложных сценариев сопоставления:
void ConstructServicesUsing(System.Func<Type,object> constructor)
Как вы можете видеть из подписи, клиенты могут зарегистрировать Func
, который AutoMapper вызывает в любое время, когда ему нужна инъецированная услуга (в основном реализация ValueResolver).
В производственных сборках этот метод вызывает мой контейнер StructureMap для извлечения компонента. Однако, когда модуль тестирует мой код сопоставления, я должен предоставить реализацию заглушки, иначе AutoMapper выдает исключение. Поскольку я использую AutoFixture + Moq в качестве контейнера для автомоек, кажется естественным, чтобы AF обновил полностью гидратированный заглушку, поэтому я могу сосредоточиться на написании кода unit test.