我试图使缓存代理类的创建尽可能简单。我已经使用简单的 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);
我有什么可以通过反思来完成的事情吗?