有没有一种方法可以在构建时注入代码?

3
我希望在我的应用程序的每个方法的顶部注入以下行。
Trace.WriteLine(this.GetType().Name + "." + "Name of Method");

我希望能够在编译时间、构建时间或者构建后的时间点进行操作,总之是在交付给客户之前。

这种操作是否可行?

2个回答

5
你应该考虑使用专门针对这种情况设计的 PostSharp。我不确定它是否已经有用于这种情况的特定属性,但我猜想编写一个也不难。
编辑:另一个想法是尝试使用 Mono.Cecil 进行二进制重写。我自己没有使用过,但值得一试。

我已经研究过了,但它引起了完全相同的问题。我必须去修饰大约一千个类。这比在每个方法中添加Trace.WriteLine要好一些,但仍然是很多重复性工作,我希望能够自动化。 - AngryHacker

1

是的,你可以使用属性来实现这个功能,正如Jon所说,你可以使用PostSharp,它是一个非常好用的API,可以轻松地处理属性。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接