我们有一个引用 WCF 服务的 MVC 项目。这些引用(ExtensionDataObject)ExtensionData
为每个 DTO 和 Response 对象添加了属性,现在AutoFixture
无法创建这些类型的匿名实例。
例子:
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
或其他任何东西,这让我可以CreateAnonymous
对所有具有ExtensionData
属性的对象进行操作。