【发布时间】:2018-09-18 01:46:26
【问题描述】:
我有一堆控制器,它们也提供不同版本的 API。
例如
/api/v1/controllerA/method
/api/v2/controllerA/method
/api/v1/controllerB/method
现在,我想使用提供的 .NET 属性将 /v1/controllerA/method 标记为 obsolete。
但是,我还想记录对过时控制器的每次使用。澄清一下 - 这些控制器方法不会产生编译警告/错误,因为没有人直接在解决方案中引用它们。它们由 http 客户端在运行时调用。所以警告对我没有任何作用。
我知道如何进行日志记录,但我不确定拦截obsolete 控制器方法的调用的最佳方法是什么。
【问题讨论】:
-
在哪个动作方法中?我标记为过时的每个控制器方法?我宁愿以某种方式集中它。
-
基于向某事物添加属性的自动日志记录称为“面向方面的编程”。我的建议是对此进行一些谷歌搜索,然后找到一些您愿意使用的框架。它利用附加的编译时步骤根据您添加的属性将您的日志“编织”到应用程序中。希望对您有所帮助。
-
我在想我会继承
ObsoleteAttribute类并让它记录,当它装饰的方法执行时......
标签: c# asp.net-web-api