gpt4 book ai didi

c# - 预处理 C# - 检测方法

转载 作者:行者123 更新时间:2023-11-30 22:48:22 27 4
gpt4 key购买 nike

我需要能够预处理多个 C# 文件作为项目的预构建步骤,检测方法的开始,并在方法开始处插入生成的代码,在任何现有代码之前。但是,我在检测方法的打开时遇到问题。我最初尝试了一个正则表达式来匹配,但最终出现了太多的误报。

我会使用反射,但是 MethodInfo 类没有引用原始源中的点。

编辑:我在这里真正想做的是支持方法的前置条件,该前置条件代码由方法的属性决定。我最初的想法是,我可以查找方法的开头,然后插入生成的代码来处理先决条件。

有更好的方法吗?如果需要,我愿意创建 Visual Studio 插件。

这是一个 .NET 2.0 项目。

干杯

最佳答案

PostSharp 或 Mono.Cecil会让你这样做cleanly通过更改生成的代码而无需编写 C# 解析器,这不太可能成为您的核心业务...

Havent 没有对 PostSharp 做过任何重要的事情,但猜测它比 Mono 更适合实现先决条件或 AOP 之类的东西。或者,您可以使用像 Ninject 这样的 DI 容器执行 AOPy 操作。

当然,这个想法的适用性取决于 - 除了您想在方法的开头插入代码之外,您没有说太多...

编辑:鉴于您希望做先决条件... Code Contracts in .net 4肯定是朝那个方向。

你有什么样的工具?附带一个 Mono.Cecil.dll DLL 有什么问题?无论哪种方式,解析器以外的东西都是完成这项工作的工具。

关于c# - 预处理 C# - 检测方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1716040/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com