У меня есть класс с именем Article в проекте MyProject.Data, который действует как слой данных для моего веб-приложения.
У меня есть отдельный проект под названием «MyProject.Admin», который представляет собой веб-систему администрирования для просмотра / редактирования данных и был построен с использованием ASP.NET Dynamic Data.
По сути, я хочу расширить класс Article, используя частичный класс, чтобы я мог расширить одно из его свойств с помощью расширителя "UIHint", который позволит мне заменить обычное многострочное текстовое поле элементом управления FCKEdit.
Мой частичный класс и расширитель будут выглядеть так:
[MetadataType(typeof(ProjectMetaData))]
public partial class Project
{
}
public class ProjectMetaData
{
[UIHint("FCKeditor")]
public object ItemDetails { get; set; }
}
Теперь все это работает нормально, если частичный класс находится в том же проекте, что и исходный частичный класс, то есть проект MyProject.Data.
Но поведение пользовательского интерфейса должно располагаться не на уровне данных, а на уровне администратора. Поэтому я хочу переместить этот класс в MyProject.Admin.
Однако, если я это сделаю, функциональность будет потеряна.
Мой фундаментальный вопрос: могу ли я иметь 2 отдельных класса в отдельных проектах, но оба ссылаются на один и тот же "класс"?
Если нет, есть ли способ выполнить то, что я пытаюсь сделать, не смешивая логику уровня данных с логикой пользовательского интерфейса?