Я пытаюсь реорганизовать решение, чтобы включить в него другой проект.
У меня есть основной проект, в котором находятся общие классы между проектами.
Я попытался упростить свой вопрос, используя 2 воображаемых проекта: Праздники и Погода ...
У меня есть настройка процесса загрузки файла для проекта Holidays, который имеет следующие 2 класса:
public class Job
{
public virtual string CreatedBy { get; set; }
public virtual DateTime? CreatedDate { get; set; }
public virtual Security Security { get; set; }
protected IList<File> _files = new List<File>();
public virtual IEnumerable<File> Files
{
get { return _files; }
}
}
public class File
{
public virtual string FileName { get; set; }
public virtual FileType FileType { get; set; }
public virtual FileStatusType FileStatusType { get; set; }
public virtual Job Job { get; set; }
}
Процесс загрузки файла для проекта Weather имеет ту же структуру, что и Holidays, за исключением того, что класс Jobs не имеет свойства Security.
У меня вопрос: возможно ли как-то переместить оба класса в проект Core, чтобы оба проекта могли их использовать?
Очевидно, что Weather не нуждается в свойстве Security, поэтому я подумал, что у меня будет класс Core.Job без Security, а затем расширю Core.Job в Holidays.Job.
Но как только я это сделаю в классе Core.File, на что ссылается Job? Поскольку он находится в проекте Core, это должен быть Core.Job.
Так что мне нужно, чтобы Job и File сидели на праздниках, а Weather (и любые другие будущие проекты) использовали Core.Job и Core.File?
Я не хочу, чтобы основной проект имел какие-либо ссылки на подпроекты.
Я использую NHibernate, поэтому у меня есть файлы сопоставления, что добавляет сложности.
Надеюсь, это достаточно ясно
Спасибо