none
ContractValidierung für Interfaces bei mehreren Assemblies RRS feed

  • Frage

  • Hallo Entwicklergemeinde,

    ich habe da ein Problem bei der Verwendung der Contracts in .NET 4.

    Habe folgende Konstellation:

    1. Interfacedefinition mit: [ContractClass(typeof(TimeTrackerServiceContract))] public interface ITimeTrackerService

    2. Contractdefinition mit: [ContractClassFor(typeof(ITimeTrackerService))] abstract class TimeTrackerServiceContract

    3. Erstellung einer abgeleiteten Klasse mit: public class TimeTrackerService : ITimeTrackerService

    4. Verwendung ITimeTrackerService service = new TimeTrackerService ();

    Solange die 2 Klassen bzw. das Interface in der gleichen Assembly definiert sind, funktioniert die Validierung der von mir definierten Contract-Bedingungen sowohl zu Laufzeit als auch während der Entwicklung über "Perform Static Contract Checking".

    Wenn ich aber die abgeleitete Klasse in ein anderes Assembly verschiebe, damit Schnittstellen (Contractklasse bleibt beim Interface) und Implementierung in getrennten Assemblies existieren, funktioniert die Contract-Validierung nicht mehr. Es werden keine Überprüfungen mehr durchgeführt.

    Hat das schon jemand von Euch in einer ähnlichen Konstellation (ist ja wohl nicht so ungewöhnlich) erfolgreich verwendet? Wenn ja, welche Einstellungen muss ich in den Projekteigenschaften bei den CodeContracts festlegen?

    Danke und viele Grüße

    Jan

    Donnerstag, 9. September 2010 12:18