私は、与えられたクラスに対して検索するべきプロパティを保持するための一般的な方法を作成しようとしています。サブクラスを使ってジェネリックを作成する
私はこの情報を保持するために、次の構造体を作成しました:
public struct Lookup<T> where T: BaseEntity
{
public Expression<Func<T, object>> Parent { get; set; }
}
をそして、以下のように辞書を作成しました:
readonly Dictionary<string, Lookup<BaseEntity>> _dict =
new Dictionary<string, Lookup<BaseEntity>>();
私は基本クラスとしてBaseEntity
を使用するクラスを持っています:
public class Agency : BaseEntity
{
public int AgencyId { get; set; }
}
この情報で新しいLookup構造体を作成します。
new Lookup<Agency>
{
Parent = x => x.Id
};
しかし、私は私の辞書にこれを追加してみてください場合、私は次のエラーを取得する:
Cannot convert from Lookup<Agency> to Lookup<BaseEntity>
彼らは同じベース型であるように私が何であるか、これが働くだろうと思っているだろうこれはラウンドです。
私は、Lookup<BaseEntity>
はLookup<Agency>
の基本型ではないなど/切り替えた場合ので、それを行うことを期待して、一般的ではなく、やって持っていた追加する
おかげ
。 –