AutoFixture: как CreateAnonymous из System.Type

Мне нужно создать объект из 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.

Ответы

Ответ 1

Это возможно, но намеренно скрыто, поскольку вам очень редко нужно это делать:

var specimen = new SpecimenContext(fixture).Resolve(type);

В AutoFixture существует множество точек расширяемости, которые чаще всего обеспечивают лучшую альтернативу, чем слабо типизированный метод Create. Что вы пытаетесь выполнить?