mit der Wenn Sie this article on Validation with the Data Annotation Validators lesen, zeigt es, dass Sie das MetadataType Attribut verwenden können Validierungsattribute Eigenschaften auf Teilklassen hinzuzufügen. Sie verwenden dies, wenn Sie mit ORMs wie LINQ to SQL, Entity Framework oder Subsonic arbeiten. Dann können Sie die "automagische" Client- und Serverseitige Validierung verwenden. Es spielt sehr gut mit MVC.Wenn Daten Anmerkungen mit MVC, Pro und Contra einer Schnittstelle im Vergleich zu einem MetadataType
Allerdings verwendete ein Kollege von mir eine Schnittstelle, um genau das gleiche Ergebnis zu erzielen. es sieht fast genau gleich aus und erfüllt funktional dasselbe. Anstatt also, dies zu tun:
[MetadataType(typeof(MovieMetaData))]
public partial class Movie
{
}
public class MovieMetaData
{
[Required]
public object Title { get; set; }
[Required]
[StringLength(5)]
public object Director { get; set; }
[DisplayName("Date Released")]
[Required]
public object DateReleased { get; set; }
}
Er tat dies:
public partial class Movie :IMovie
{
}
public interface IMovie
{
[Required]
object Title { get; set; }
[Required]
[StringLength(5)]
object Director { get; set; }
[DisplayName("Date Released")]
[Required]
object DateReleased { get; set; }
}
Also meine Frage ist, wann ist dieser Unterschied tatsächlich eine Rolle?
Meine Gedanken sind, dass Interfaces eher "wiederverwendbar" sind, und dass es für einen einzelnen Kurs keinen Sinn macht, ihn zu machen. Sie könnten auch argumentieren, dass Sie Ihre Klassen und Interfaces so gestalten können, dass Sie Interfaces für mehrere Objekte verwenden können, aber ich habe das Gefühl, dass Ihre Modelle in etwas anderes passen, wenn sie wirklich alleine stehen sollten. Was denken Sie?
Ich habe genau das getan und es hat nicht funktioniert ...: -S – Alxandr