Wir haben ein MVC-Projekt mit Verweisen auf WCF-Dienste. Diese Referenzen hinzugefügt (ExtensionDataObject)ExtensionData
Eigenschaft zu jedem DTO und Response-Objekt und jetzt AutoFixture
erstellt keine anonyme Instanzen dieser Typen.Ploeh AutoFixture konnte keine Instanz von System.Runtime.Serialization.ExtensionDataObject erstellen
Beispiel:
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;
}
}
}
Code:
_fixture = new Fixture().Customize(new AutoMoqCustomization());
var dto = _fixture.CreateAnonymous<SearchResultsDto>();
Ausnahme:
Ploeh.AutoFixture.ObjectCreationException: Ploeh.AutoFixture.ObjectCreationException: AutoFixture nicht in der Lage war zu ein erstellen Instanz von System.Runtime. Serialization.ExtensionDataObject, höchstwahrscheinlich, weil es keinen öffentlichen Konstruktor hat, ist ein abstrakter oder nicht-öffentlicher Typ ..
Frage: Gibt es eine Möglichkeit, diese Aufgabe Registrierung innerhalb des AutoFixture, so dass sie es instanziiert als null
oder irgendetwas anderes, was würde ich CreateAnonymous
auf alle Objekte mit ExtensionData
Eigenschaft tun lassen.
Seit AutoFixture 3.x löst die letzte Codezeile eine Warnung aus, die dadurch verursacht wird, dass der Konstruktoraufruf als veraltet markiert ist. Um es zu entfernen, ändern Sie es in: new NoSpecimen() – dzendras