У меня есть этот класс:
public class MyClass {
public string GetText() {
return "text";
}
}
Я хочу иметь общий метод кэширования. Если вызывается GetText, я хочу перехватить этот вызов, что-то вроде;
public T MethodWasCalled<T>(MethodInfo method) {
if(Cache.Contains(method.Name)) {
return Cache[method.Name] as T;
}
else {
T result = method.Invoke();
Cache.Add(method.Name, result);
return result;
}
}
Я надеюсь, что вышеизложенное объясняет, чего я хочу достичь. Что было бы хорошей стратегией для этого?