私のプロジェクトには、純粋なデータ指向アプリケーションであるServiceStack OrmLiteを選択しました。CodeDOMを使用して実行時にクラスを生成するために使用される XML 形式で定義された独自のオブジェクト型をエンド ユーザーが作成できるようにしたいと考えています。
アプリケーションに必要な「システム」オブジェクト (つまりUser
) もいくつか定義しますが、エンド ユーザーが使用するすべてのプロパティを予測することはできないため、設計時に作成したクラスを拡張できる方法を探しています。以下のサンプル
public class User
{
public Guid Uid { get; set; }
public String Username { get; set; }
public String Password { get; set; }
}
エンド ユーザーは と を必要としていEmail
ますAddress
。彼は 2 つのプロパティを上位クラスに追加できるはずであり、クラス全体が追加されます (上書きが許可されているため、OrmLite で引き続き使用できます:
public class User
{
public Guid Uid { get; set; }
public String Username { get; set; }
public String Password { get; set; }
public String Email{ get; set; }
public String Address { get; set; }
}
(クラスが既にインスタンス化されている場合) システムをクラッシュさせるリスクがあることを知っているので、この問題を回避し、必要性を模倣する最善の方法を探しています。