リストを辞書に保存するキャッシュクラスがあります。
public class CacheList<T>
{
private Dictionary<UInt64, T> _cacheItems = new Dictionary<UInt64, T>();
public IList<T> GetItems()
{
return new List<T>(_cacheItems.Values);
}
public void Add(T item)
{
UInt64 key = (UInt64)(item.GetHashCode());
if (!_cacheItems.ContainsKey(key))
_cacheItems.Add(key, item);
}
}
現在、ジェネリック T からハッシュコードを取得して、項目をディクショナリに追加しています。しかし、キーとして保持するフィールド/プロパティを指定したいと考えています。問題は、タイプ T であるため、このアイテムにどのプロパティがあるかがわからないことです。
一般的なアイテムからプロパティにアクセスするにはどうすればよいですか?