我需要能够预处理多个 C# 文件作为项目的预构建步骤,检测方法的开始,并在方法的开始处(任何现有代码之前)插入生成的代码。但是,我在检测方法的打开时遇到问题。我最初尝试使用正则表达式进行匹配,但最终出现了太多误报。
我会使用反射,但 MethodInfo 类不会引用原始源中的点。
EDIT:我在这里真正想做的是支持方法的前置条件,前置条件代码由方法的属性确定。我最初的想法是,我可以查找方法的开头,然后插入生成的代码来处理先决条件。
有一个更好的方法吗?如果需要的话,我愿意创建一个 Visual Studio Addin。
这是一个 .NET 2.0 项目。
Cheers
后锐化或莫诺·塞西尔 https://stackoverflow.com/questions/1513319/mono-cecil-documentation-and-tutorials会让你这样做cleanly http://www.mono-project.com/Cecil%3AFAQ通过更改生成的代码而不编写 C# 解析器,这不太可能成为您的核心业务......
没有使用 PostSharp 做过任何重要的事情,但猜测它比 Mono 更适合实现先决条件或 AOP 之类的东西。或者,您可以使用 DI 容器执行 AOPy 操作,例如Ninject http://ninject.codeplex.com
但是当然这个想法的适用性取决于 - 除了你想在方法的开头插入代码之外你没有说太多......
编辑:根据您想做先决条件的愿望.......net 4 中的代码合约 http://msdn.microsoft.com/en-us/devlabs/dd491992.aspx肯定是在那个方向。
你有什么样的工具?只提供一个 Mono.Cecil.dll DLL 有什么问题吗?无论哪种方式,解析器以外的东西都是完成这项工作的工具。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)