Frage

Ich habe eine Schnittstelle wie folgt definded:

public interface IDatabase{ void Get<TTypeToFetch> ();}

und wenn ich versuche zu tun: Mockery mockery = new Mockery(); IDatabase db = mockery.NewMock<IDatabase>(); Ich erhalte die folgende Fehlermeldung:

  

System.TypeLoadException: System.TypeLoadException: Unterschrift des Körpers und die Erklärung in einer Methodenimplementierung nicht übereinstimmen

Was ist falsch? (Ich bin mit Visual Studio 2008 mit NMock2) Bitte jeder konnte mir eine Antwort geben, ich habe diese bald zu beenden. Vielen Dank, Luisa

War es hilfreich?

Lösung

ich denke, das ein Problem mit NMock sein kann, möglicherweise sogar ein Bug. Der Typ IDatabase ist nicht generisch, so dass, wenn Sie rufen Get<T>, verschiedene Ts zur Laufzeit verwendet werden könnten. Aber wenn NMock ist das Mock Erzeugung, es scheint nicht zu verstehen, dass dies der Fall ist, und Kablammo -. Jede Methodensignatur unterscheidet sich je nach Typ Parameter angegeben

Versuchen Sie stattdessen tun:

public interface IDatabase<T> {
  void Get<T>();
}

Auch sollte nicht die Art von Get seine T, nicht void?

Andere Tipps

Ich hatte die gleiche Ausnahme mit meiner eigenen Schnittstelle. Wenn i-Schnittstelle ändern Öffentlichkeit alles sein läuft ok.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top