c# - 如何在编译时注入(inject) C# 代码?

标签 c# .net reflection aop trace

我希望能够使用自定义 Trace 属性修饰任何方法,并且应该在编译时将一些代码注入(inject)到该方法中。

例如:

[Trace]
public void TracedMethod(string param1)
{
   //method body
}

应该变成:

public void TracedMethod(string param1)
{
   Log.Trace("TracedMethod", "param1", param1);
   //method body
}

在这种情况下,注入(inject)的代码取决于方法名和方法参数,因此应该可以推断出这些信息。

有谁知道如何做到这一点?

最佳答案

要在 C# 中进行面向方面的编程,您可以使用 PostSharp .

(The homepage 甚至显示了一个 Trace 示例,就像您要求的那样!)

关于c# - 如何在编译时注入(inject) C# 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1352513/

相关文章:

c# - Web API 中的异常处理并返回 JSON

c# - 直接从sql数据库在网页中显示pdf文件,无需将它们保存到服务器文件系统

.net - 不断更新 Windows 窗体上的当前时间显示?

c# - 当右侧操作数是泛型时, "as"运算符如何翻译?

optimization - 如何在 Golang 中获取指向任何数据类型值的字节指针?

c# - 你调用的对象是空的。 C# 获取属性()

C# - 将 excel 数据复制到数组中的方法

c# - 无法使用以 'μ' 开头的元素反序列化 xml

c# - 使用 WCF 和 Java 编写的 Web 服务

c# - 通过字符串名称设置/获取类属性