C# 在生产中启用postsharp

C# 在生产中启用postsharp,c#,postsharp,log4postsharp,C#,Postsharp,Log4postsharp,我试图理解AOP和PostSharp,并想知道在生产中如何打开PostSharp以捕获日志,并在不需要时同样关闭它?我希望在配置文件中有一个标志,使我能够打开或关闭日志记录 谢谢。PostSharp在编译时构建IL并注入它。您无法在运行时将其关闭,因此无法在PROD中将其关闭。但是,您可以非常轻松地构建一个应用程序设置,让PostSharp代码读取该设置,并在该标记打开时返回默认工作流 至少通过这种方式,您可以停止执行任何其他代码 if (ConfigurationManager.AppSett

我试图理解AOP和PostSharp,并想知道在生产中如何打开PostSharp以捕获日志,并在不需要时同样关闭它?我希望在配置文件中有一个标志,使我能够打开或关闭日志记录


谢谢。

PostSharp在编译时构建IL并注入它。您无法在运行时将其关闭,因此无法在PROD中将其关闭。但是,您可以非常轻松地构建一个应用程序设置,让PostSharp代码读取该设置,并在该标记打开时返回默认工作流

至少通过这种方式,您可以停止执行任何其他代码

if (ConfigurationManager.AppSettings["YourSetting"] == "some_value")
{
    args.FlowBehavior = FlowBehavior.Default;
    return;
}

PostSharp在编译时构建IL并将其注入。您无法在运行时将其关闭,因此无法在PROD中将其关闭。但是,您可以非常轻松地构建一个应用程序设置,让PostSharp代码读取该设置,并在该标记打开时返回默认工作流

至少通过这种方式,您可以停止执行任何其他代码

if (ConfigurationManager.AppSettings["YourSetting"] == "some_value")
{
    args.FlowBehavior = FlowBehavior.Default;
    return;
}

谢谢你的回复。这是否意味着我必须在每个OnEntry()方法中都添加该代码?谢谢您的回复。这是否意味着我必须将该代码放入每个OnEntry()方法中?