Ich habe eine Klasse namens "Artikel" in einem Projekt namens "MyProject.Data", die als Datenschicht für meine Webanwendung fungiert.
Ich habe ein separates Projekt namens 'MyProject.Admin', ein webbasiertes Administrationssystem zum Anzeigen / Bearbeiten der Daten, das mit ASP.NET Dynamic Data erstellt wurde.
Grundsätzlich möchte ich die Article-Klasse mithilfe einer Teilklasse erweitern, damit ich eine ihrer Eigenschaften mit einem "UIHint" -Extender erweitern kann, mit dem ich das normale mehrzeilige Textfeld durch ein FCKEdit-Steuerelement ersetzen kann.
Meine Teilklasse und mein Extender würden so aussehen:
[MetadataType(typeof(ProjectMetaData))]
public partial class Project
{
}
public class ProjectMetaData
{
[UIHint("FCKeditor")]
public object ItemDetails { get; set; }
}
Dies funktioniert nun einwandfrei, wenn sich die Teilklasse im selben Projekt wie die ursprüngliche Teilklasse befindet, dh im MyProject.Data-Projekt.
Das Verhalten der Benutzeroberfläche sollte jedoch nicht in der Datenebene, sondern in der Admin-Ebene liegen. Daher möchte ich diese Klasse nach MyProject.Admin verschieben.
Wenn ich das mache, geht die Funktionalität jedoch verloren.
Meine grundlegende Frage lautet: Kann ich zwei Teilklassen in separaten Projekten haben, aber beide beziehen sich auf dieselbe "Klasse"?
Wenn nicht, gibt es eine Möglichkeit, das zu erreichen, was ich versuche, ohne Datenschichtlogik mit UI-Logik zu mischen?
MetadataType
macht Models eher zu ViewModels.