キャッシュ プロキシ クラスの作成をできるだけ簡単にしようとしています。簡単な API を使っていくつかの異なる実験を行ってきましたが、それほど簡単ではありません。
現在、属性と反射を調べて、「魔法のように」解決できるかどうかを確認しています。たとえば、次のクラスがあるとします。
public static MyCache
{
[Cache("foobar")]
public static string Foobar { get; set; }
}
どういうわけかそれに相当するものを大量生産させます
public static MyCache
{
[Cache("foobar")]
public static string Foobar
{
get
{
return (string)Cacher.Get("foobar");
}
set
{
Cacher.Set("foobar", value, new CacheOptions()); //or whatever
}
}
}
これが有効であるように、どちらのバージョンも呼び出し元には「通常」に見えるはずですが、
MyCache.Foobar="meh";
Assert.IsEqual("meh", MyCache.Foobar);
このようなものを機能させるリフレクションで利用できるものはありますか?