你可以实现这一点,但这是一种黑客攻击.您可以做的是使用ReSharper的外部注释使用ConditionalAttribute修饰您的日志记录方法.
ReSharper几乎在所有地方都使用了注释Debug.WriteLine,例如,它知道如何在Release 中使行变灰,因为这些Debug.Write...行是用[Conditional("DEBUG")]属性装饰的.
你可以做的是通过让ReSharper 认为你的记录器方法中存在这样的条件方法来作弊.您可以通过XML在外部应用此属性来完成此操作.
我写过关于在我的博客中做这样的事情,这里是你如何做到这一点:
Run Code Online (Sandbox Code Playgroud)<assembly name="NLog"> <member name="M:NLog.Logger.Info(System.String)"> <attribute ctor="M:System.Diagnostics.ConditionalAttribute.#ctor(System.String)"> <argument>LOG</argument> </attribute> </member> <member name="M:NLog.Logger.Debug(System.String)"> <attribute ctor="M:System.Diagnostics.ConditionalAttribute.#ctor(System.String)"> <argument>LOG</argument> </attribute> </member> </assembly>
对于希望"灰显"的每种方法,您需要添加一个<member>包含方法的XML-Doc ID名称的块.在ReSharper 8 EAP中,有一个选项将XML-Doc ID复制到剪贴板,位于ReSharper的编辑菜单下.
这实质上导致ReSharper的引擎认为[Conditional("LOG")]记录器的类型元数据中已定义.
添加完所有需要的方法后,只需重新加载解决方案即可.你应该得到你想要的东西(有点......就像我说的,这是一个黑客:))

lig*_*cko -3
只是不要这样做。
这是处理非结构化代码的糟糕方法,而且它只会有一点帮助,而且只对你有用。如果您按照您建议的方式进行操作(如果可能),其他开发人员如果希望业务逻辑脱颖而出,则必须像您一样安装 ReSharper 并进行配置。
这不是您所要求的,但我认为更好的方法是将详细日志记录移动到单独的方法/类中。那么与日志记录相关的代码将只是当前方法中的单个方法调用。
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |