【发布时间】:2010-04-22 14:05:57
【问题描述】:
假设我们有这个类:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
现在,在 C# 中是否可以拦截对属性 get 方法的调用,运行其他方法并返回该方法的结果而不是属性值?我希望能够在幕后做一些额外的逻辑。 缺点是此类无法更改(在 C# 级别上)。也许是一些 IL ?
【问题讨论】:
-
你能继承类并覆盖属性吗?
-
其实这里的人并没有从上到下阅读它并发布了原始类可以更改的代码
-
是的,大多数人都发布了最简单的解决方案,但我确实需要在 C# 引擎盖下注入代码。我认为 PostSharp 看起来不错。
-
我也刚刚添加了一个 IL 往返示例。这将向您展示如何在没有第三方工具的情况下做到这一点。只是 .NET SDK。