如果项目包含进行反射的代码,是否可以使VS2013、csc或msbuild生成警告或错误?
这意味着对我们自己的开发人员的不良做法的防御性限制(例如,没有工作经验的应届毕业生,或者只是对绝对不应该提交的调试代码的防御)。
发布于 2015-01-27 08:06:46
您只需在所有源文件中为System.Reflection添加一个构建前/构建后步骤(在Windows上为findstr)。他们要么必须把它放在一个using语句中,要么完全限定代码中的用法,这样它就能捕捉到任何一种情况。当然,如果您的代码中确实存在System.Reflection的合法用法,它可能会标记出许多误报。棘手的部分是颠倒findstr的返回值(如果找不到字符串,它通常返回1)。试试这个:findstr /s /L "System.Reflection" *.cs && echo Error: using System.Reflection is not allowed. && set ERRORLEVEL=1 || set ERRORLEVEL=0你可以根据需要添加更多的通配符和/或使它们更具体。
发布于 2015-01-27 08:00:23
我不相信全面禁止反思。
然而,您可以使用自定义任务来实现这一点,但这将是困难的,因为它必须通过源代码来查找使用反射的位置并发出警告。
http://blogs.msdn.com/b/msbuild/archive/2006/01/21/515834.aspx
像FxCop或Sonar这样的工具也许能够帮助您使用自定义规则来分析代码。
https://stackoverflow.com/questions/28160898
复制相似问题