我们有一个引用WCF服务的MVC项目。这些引用为每个DTO和Response对象添加(ExtensionDataObject)ExtensionData
属性,现在AutoFixture
未能创建这些类型的匿名实例。Ploeh AutoFixture无法从System.Runtime.Serialization.ExtensionDataObject创建实例
实施例:
public partial class SearchResultsDto : object,
System.Runtime.Serialization.IExtensibleDataObject,
System.ComponentModel.INotifyPropertyChanged {
[System.NonSerializedAttribute()]
private System.Runtime.Serialization.ExtensionDataObject extensionDataField;
[global::System.ComponentModel.BrowsableAttribute(false)]
public System.Runtime.Serialization.ExtensionDataObject ExtensionData {
get {
return this.extensionDataField;
}
set {
this.extensionDataField = value;
}
}
}
代码:
_fixture = new Fixture().Customize(new AutoMoqCustomization());
var dto = _fixture.CreateAnonymous<SearchResultsDto>();
例外:
Ploeh.AutoFixture.ObjectCreationException: Ploeh.AutoFixture.ObjectCreationException:AutoFixture无法 创建来自 System.Runtime的实例。 Serialization.ExtensionDataObject,很可能是因为 它没有公共的构造,是一个抽象的,非公开式..
问:是否有注册AutoFixture内该对象的一种方式,所以它实例化它null
或其他任何东西,这会让我对所有具有ExtensionData
属性的对象执行CreateAnonymous
。
自AutoFixture 3.x以来,最后一行代码触发了由于contstructor调用被标记为Obsolete而导致的警告。要删除它,请将其更改为:new NoSpecimen() – dzendras 2016-08-10 12:39:21