![](/img/trans.png)
[英]How to AutoFixture.CreateAnonymous<>() on class with internal ctor
[英]AutoFixture: how to CreateAnonymous from a System.Type
我只需要使用System.Type从AutoFixture创建一个对象。 但是,似乎没有CreateAnonymous()
的重载只是一个类型。 他们都期望编译时通用T.有没有办法将System.Type转换为T?
编辑使用细节:
我正在使用AutoMapper,它有一个用于注入组件的钩子,以支持复杂的映射场景:
void ConstructServicesUsing(System.Func<Type,object> constructor)
从签名中可以看出,客户端可以注册一个Func
,AutoMapper会在需要注入服务时调用它(主要是ValueResolver实现)。
在生成版本中,此方法调用我的StructureMap容器来检索组件。 但是,在单元测试我的映射代码时,我必须提供存根实现,否则AutoMapper会抛出异常。 由于我使用AutoFixture + Moq作为我的自动锁定容器,因此让AF新建一个完全水合的存根似乎很自然,所以我可以集中精力编写单元测试代码。
这是可能的 ,但故意隐藏,因为你应该很少需要这样做:
var specimen = new SpecimenContext(fixture).Resolve(type);
AutoFixture中有大量的可扩展点,通常比弱类型的Create方法提供更好的替代方案。 你想达到什么目的?
您必须使用反射来创建正确的MethodInfo
并调用它。 请参阅以下答案: 如何使用给定的Type对象调用泛型方法?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.