我想重構一個解決方案,讓其他項目。 我有一個核心項目,其中跨項目的公共類位於。我如何設計一個特定的超類
我試着用2個假想項目simpify我的問題:假期和天氣...
我的假期項目,有以下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; }
}
除了Jobs類沒有Security屬性之外,Weather項目的文件加載過程與Holidays的結構完全相同。
我的問題是,是否有可能以某種方式將兩個類都移動到Core項目中,以允許兩個項目使用它們? 顯然Weather不需要Security屬性,所以我想我會有一個沒有Security的Core.Job類,然後在Holidays.Job中擴展Core.Job。
但是,一旦我這樣做了,在Core.File類中,它指的是什麼Job?由於它位於Core項目中,它必須是Core.Job。 那麼我會需要讓作業和文件坐在節假日中,並且天氣(以及任何其他未來的項目)都使用Core.Job和Core.File?
我不希望Core項目對子項目有任何引用。
我使用NHibernate,所以有映射文件 - 增加了複雜性。
希望這是非常明顯的
感謝
謝謝Tigran。但是File類看起來像什麼?正如在我上面的代碼示例中,文件類上有一個Job屬性。那麼,我需要一個包含HolidayJob的HolidayFile嗎? – 2012-02-21 15:38:47