あまりにも多くの詳細を与えるために5回投票したので、私はこれを書き直さなければなりませんでした。ジェネリックと継承... <T>タイプを指定する必要はありませんか?
私は現在、BaseModelクラスを継承するいくつかのクラスを持っています。 BaseModelによって公開される各メソッドは、インスタンス、またはBaseRowクラスを継承する型のインスタンスの配列を返します。現時点で
、私はBaseModelのメソッドとして、タイプ(BaseRowクラスを継承したクラス)を指定する必要がすなわち
using(DeviceModel model = new DeviceModel())
{
DeviceRow row = model.Find<DeviceRow>(1);
DeviceRow[] rows = model.Get<DeviceRow>();
DeviceRow newRow = model.New<DeviceRow>();
}
、継承クラスを経由してBaseModelに公開されたメソッドを呼び出します/ BaseRowは、BaseRowから継承したもの以外の、それらがどのタイプであるかを知らない/気にしません。私がやりたい何
は、BaseModel継承するすべてのクラスのコードを複製することなく、指定する必要を削除する方法を見つけるすなわち
class DeviceModel : BaseModel
{
public DeviceRow Find(object param)
{
return this.Find<DeviceRow>(param);
}
}
。注:残念ながら、私はすることができませんサードパーティのソリューションを実装または使用すること。つまり、私はCastle Active Record/nHibernateを使用しようとしましたが、正直言って、非常に単純なシステムでなければならないものは非常に大きくて重いです。
私は「あまりにも多くの」詳細を提供していないことを願っています。私が持っているなら、私に知らせてください。
おかげ
あなたの質問にお答えするには、このコードが必要ですか?あなたは少し(または多く)それを簡素化できませんか? – svick
なぜLINQ2SQLを使用しないのですか?あなたが求めるものを正確にするように見えます。 – leppie
あなたにとって難しい問題は、あなたの問題を示す最小限の例を見つけることです。途中で、あなた自身の問題を解決するかもしれません! – ObscureRobot