www.un.org/Depts/DGACM/index_spanish.htm 建议的解决办法
从可能的解决办法开始,这应当停止坠毁:
var fixture = new Fixture().Customize(new AutoMoqCustomization());
// This should fix the problem for all Controllers
fixture.Customize<ViewDataDictionary>(c =>
c.Without(x => x.ModelMetadata));
HomeController controller = fixture.CreateAnonymous<HomeController>();
<>Explanation>
现在解释:
这一测试错误是由于试图将价值分配到<代码>的“AutoProperties特征”造成的。 HomeController.ViewData.ModelMetaData。 模型MetaData级有这一构造者:
public ModelMetadata(
ModelMetadataProvider provider,
Type containerType,
Func<object> modelAccessor,
Type modelType,
string propertyName)
The culprit here is the modelAccessor
para amount. 填充该财产(无意识地)反映该类型,并找到该单一构造者:
public Func(object @object, IntPtr method)
此外,第一部IntPtr Constructionor AutoFixture能够满足以下要求:
public unsafe IntPtr(int value)
在32个案例中,由定型上升的序列生成,因此,<代码>> 值/代码>在这种情况下可能为1或2或类似的小群。 换言之,我们现在手上有一个“完全无效的不安全的点子”,这正在使这一进程崩溃。
现在,在正常情况下,我们应当能够通过登记“;object>和“Fixture”加以确定,而且一切都应当做到:
fixture.Register<Func<object>>(() => () => new object());
然而,我以你的赞扬为尝试了这项工作,尽管该进程不再以同样的方式坠毁,但试验时间很长,最后是用外派外派的外派。
我不知道伙伴关系的内容。 NET MVC与Func<object>
有关,但显然使用该编码相当高。
问题仍然是这是否是“自治”的ug?
我认为,这是.。 虽然这肯定不理想,但自治政府却以不同于其他类型的方式对待富人或行动,这就是为什么我们看到这种行为。
这种特殊行为可能通过增加对<代码>Func<TResult>的具体支持加以解决,但为了保持一致,还应支持<代码>Func<T, TResult>Func<T1,T2, TResult>,等。
但是,在他们的建筑中,所有其他类型究竟是什么? “自治”可能知道所有这些,因此似乎不是一种可行的方向。
但是,它是什么? a guard,防止它首先在上制造IntPtr事例。 这很可能在2.0RTW之前增加。
感谢你报告这一情况。