'MyProject.Data'というプロジェクトに 'Article'というクラスがあります。これは、私のWebアプリケーションのデータレイヤーとして機能します。
'MyProject.Admin'という別のプロジェクトがあります。これは、データを表示/編集するためのWebベースの管理システムであり、ASP.NET動的データを使用してビルドされました。
基本的に、部分クラスを使用してArticleクラスを拡張し、そのプロパティの1つを「UIHint」エクステンダーで拡張できるようにします。これにより、通常の複数行のテキストボックスをFCKEditコントロールに置き換えることができます。
私の部分クラスとエクステンダーは次のようになります:
[MetadataType(typeof(ProjectMetaData))]
public partial class Project
{
}
public class ProjectMetaData
{
[UIHint("FCKeditor")]
public object ItemDetails { get; set; }
}
これで、部分クラスが元の部分クラスと同じプロジェクトにある場合(つまり、MyProject.Dataプロジェクト)、これはすべて正常に機能します。
ただし、UIの動作はデータレイヤーではなく、管理レイヤーに置く必要があります。したがって、このクラスをMyProject.Adminに移動します。
ただし、そのようにすると機能が失われます。
私の基本的な質問は次のとおりです。別々のプロジェクトに2つの部分クラスを含めることができますが、どちらも同じ「クラス」を参照していますか?
そうでない場合、データ層ロジックとUIロジックを混在させることなく、私がやろうとしていることを達成する方法はありますか?
MetadataType
、ModelsをViewModelsのようにします。