预处理 C# - 检测方法

2024-02-29

我需要能够预处理多个 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(使用前将#替换为@)

预处理 C# - 检测方法 的相关文章

  • Linq - 从表达式 创建表达式

    我有一个谓词Expression
  • 如何在特定时间以毫秒精度触发 C# 函数?

    我有两台计算机 它们的时间通过 NTP 同步 确保时间仅相差几毫秒 其中一台计算机将通过 TCP 向另一台计算机发送一条消息 以在两台计算机上的未来指定时间启动某个 c 函数 我的问题是 如何在特定时间以毫秒精度 或更好 触发 C 中的函数
  • 平滑手绘曲线

    我有一个允许用户绘制曲线的程序 但这些曲线看起来不太好 它们看起来摇摇欲坠 而且是手绘的 所以我想要一种能够自动平滑它们的算法 我知道平滑过程中存在固有的模糊性 因此它不会每次都完美 但这种算法似乎确实存在于多个绘图包中 并且它们工作得很好
  • 最新 .Net MongoDb.Driver 的连接问题

    我创建了一个 MongoLab 沙箱数据库 我与 MongoChef 连接 效果很好 我通过 Nuget 安装了 MongoDB Driver 2 2 2 我编写了一些简单的 C 演示代码 但就是无法使其工作 连接字符串是直接从 Mongo
  • 警告 C4800:“int”:强制值为 bool“true”或“false”(性能警告)

    我的代码中有这个问题 bool CBase isNumber return id MID NUMBER bool CBase isVar return id MID VARIABLE bool CBase isSymbol return i
  • C# 无法捕获 SerializationException

    我的程序在加载序列化文件的部分遇到问题 如果文件无法反序列化 我希望很好地失败 但由于某种原因 我的程序将中断而不是进入 catch 子句 这是我的代码 using FileStream fs new FileStream openFile
  • ASP.NET - 在 RenderContent 调用中将事件处理程序添加到 Repeater 内的 LinkBut​​ton

    我有一个加载自定义用户控件的 Sharepoint WebPart 用户控件包含一个 Repeater 而 Repeater 又包含多个 LinkBut ton 在 Web 部件的 RenderContent 调用中 我有一些用于添加事件处
  • 组合框下拉位置

    我有一个最大化的表单 其中包含 500px 的组合框控件 停靠在右上角 Width 尝试打开组合框后 列表的一半超出了屏幕 如何强制列表显示在表单中 棘手的问题 我找不到解决这个问题的好办法 只是一个解决方法 添加一个新类并粘贴如下所示的代
  • opencv中如何去除二值图像噪声?

    将图像转换为二值图像 黑白 后如果有任何噪音怎么办 我消除了那些不需要的噪音 您可以看到下图的黑色区域内有一些白噪声 我该如何去除噪声 使用opencv http img857 imageshack us img857 999 blackn
  • 如何减少 MinGW g++ 编译器生成的可执行文件的大小?

    我有一个简单的 Hello world C 程序 在 Win XP 下由 MinGW g 编译器编译为 500kB 可执行文件 有人说这是由于iostream的库和静态链接libstdc dll Using s链接器选项有点帮助 减少了 5
  • 控制台应用程序中使用 Unicode 字符的 _tprintf

    我正在从 Unicode 构建的控制台应用程序 使用 C 和 Visual Studio 2008 执行这个简单的输出 此代码旨在在 Windows 上运行 tprintf L Some sample string n 一切正常 但是如果我
  • C# 枚举到字符串自动转换?

    是否可以让编译器自动将我的 Enum 值转换为字符串 这样我就可以避免每次都显式调用 ToString 方法 这是我想做的一个例子 enum Rank A B C Rank myRank Rank A string myString Ran
  • 应用程序处于中断模式。您的应用程序已进入中断状态,

    我发现自己遇到了同样的问题here https stackoverflow com questions 36204009 disable break mode page in vs2015 我在 dll 中使用 Windows 窗体 这是针
  • 如何从外语线程调用Python函数(C++)

    我正在开发一个程序 使用 DirectShow 来抓取音频数据 媒体文件 DirectShow 使用线程将音频数据传递给回调 我的程序中的函数 然后我让该回调函数调用另一个函数 Python 中的函数 我使用 Boost Python 来包
  • 当需要不同数量和类型的参数时如何创建操作委托列表

    我们有一组大约两打的类 它们继承自具有抽象 Validate 方法的基类 当然 每个类都有不同的验证需求 但它们之间的不同组合需要规则 因此 正如您可以想象的那样 这导致了大量代码重复 例如 A 类需要规则 1 3 6 和 9B 类需要规则
  • 传递数组时在 C 中的函数参数中强制指定数组大小

    Context 在 C 中 我有一个以数组作为参数的函数 该参数用作该函数的输出 输出的大小始终相同 我会 让阅读代码的人清楚所需的大小 不过它已经在函数注释中了 理想情况下 编译会输出警告或错误 这样我就可以在编译时而不是运行时防止出现问
  • Gremlin.net 文本包含等效项

    我正在使用 Gremlin net 库连接到 janus 图形服务器 我使用 cassandra 和弹性搜索进行数据存储和索引 在我使用的 gremlin 语言和 gremlin 控制台中文本包含在属性的文本中进行搜索 我正在使用混合索引
  • Type.GetInterfaces() 仅适用于声明的接口

    首先 像这样的问题有很多 也许有些OP甚至在问同样的问题 问题是这些问题的答案 无论是否接受 都没有真正回答这个问题 至少我找不到 如何确定类直接声明的接口 而不是由父级或声明的接口继承的接口 e g interface I interfa
  • 如何从 Access 数据库中读取“是/否”值作为布尔值?

    帮我找回YES NO来自 MS Access 的布尔格式数据类型 我尝试解析它 但它总是返回 false 更新 实际上不是问题抱歉 它确实接受 YES NO 作为布尔值 OleDbconnection dbConnect new OleDb
  • 从脚本启用/禁用 GameObject 组件 [Unity3D]

    我需要获取一个脚本中设置的布尔值 放入名为 bouclier 的变量 以启用或禁用游戏对象 该变量位于游戏对象 Player 中 此处右下角 我需要启用或禁用这个游戏对象 Bouclier01 为此 我将脚本附加到游戏对象 Bouclier

随机推荐

  • 在 Maven 构建期间将文件添加到 jar

    我试图在执行 Maven 构建时将许可证文件添加到我的所有 jar 中 我有每个类文件的许可证 但我希望将 License txt 添加到每个 jar 中的每个 META INF 文件夹 我的项目有一个主 pom 其中有六个模块 然后这些模
  • 发送相机意图后立即调用 onActivityResult

    我正在使用相机意图在我的应用程序中启动相机 但是一旦意图被触发onActivityResult被解雇了 我什至还没有拍照 当我拍照时 选择它并返回到我的活动onActivityResult根本没有被叫到 这是我启动相机的方法 Package
  • 使用 Visual Studio 构建伪语言 (qps-ploc) 附属程序集

    我已经生成了应用程序资源文件的伪本地化版本 例如Order Summary and Payment本地化为 O r d e r S u m m a r y a n d P a y m e n t 以便我们可以在获得实际翻译之前测试本地化错误
  • 如何在Reactjs中点击按钮重定向到另一个页面

    我想使用 React 创建一个基本的 Web 应用程序 我已经实现了创建按钮 我想在单击按钮时重定向到另一个页面 下面是我的 App js 代码 import React from react import logo from logo s
  • 在Python中使用PIL压缩PNG图像

    我有一个用 Selenium Builder 记录的 python 脚本 它使用以下命令获取网页的完整浏览器屏幕截图 fileName Screenshot1 png webDriverInstance save screenshot fi
  • 如何将 WooComerceAPI 集成到 React 中?

    我想通过 API 在 React 上接收数据到我的网站 我按照文档中所述执行了所有操作 执行了安装npm install save woocommerce api 使用文档中的参数创建对象http woocommerce github io
  • 无法验证包:727047181.itmsp

    我在存档文件后在应用程序商店中上传了构建版本 它将在我收到此错误时上传构建版本 1 Apple的Web服务操作不成功 2 无法验证包 727047181 itmsp 3 错误 ITMS 9000 无法更改捆绑包标识符的当前值 ue com
  • 使用 PHP 从 Google Chrome 书签导出中提取数据

    我想将我的 google chrome 书签放入数据库 所以我的第一步是使用 PHP 从 chrome 导出 html 文件并将数据放入变量中 我希望获得一些能够运行的 PHP 代码下面的数据 它会将 URL ADD DATE ICON 和
  • 无法通过管道以自定义方式重命名下载的图像

    我使用 python 的 scrapy 模块创建了一个脚本 从 torrent 站点下载并重命名电影图像 并将它们存储在 scrapy 项目内的文件夹中 当我按原样运行脚本时 我发现它正确地下载了该文件夹中的图像 此时 脚本正在使用 req
  • javascript从所选国家/地区值中选择城市

    我有来自这里的国家数据库http www webmasterworld com html 3018309 htm http www webmasterworld com html 3018309 htm有239个国家 每个国家都有价值 在选
  • 这个指针类型防水吗?

    我正在尝试设计一种自定义类型 可以在需要窗口句柄或其他类型指针的 API 中使用 并且适用于 VBA 可以运行的所有系统 这是我所得到的 If Win64 1 And VBA7 0 Then Public Type LongLong 64
  • Chart.js 上的悬停模式

    当您未将鼠标悬停在折线图中的特定 点 上时 是否可以激活悬停 I want that每当我将鼠标悬停在图表的任何部分上时就会激活特定的工具提示 Edit 像这样的东西http watchstocks herokuapp com http w
  • 减少纬度和经度点数的最快方法

    我正在尝试减少并组合一些点到这些位置的中心点 现在 我通过找到最接近的一对 将它们组合起来并重复 直到将其减少到我的目标 旁注 实际上我通过排序来减少问题 lat lat long long 然后在每个点的两侧搜索 10 根据我的测试 总是
  • Swift 框架在 lldb 中返回“模糊使用”方法扩展

    我已升级到 Xcode 11 和 swift 5 并在通过框架提供方法扩展时遇到了问题 更具体地说 在一个结构如下的项目中 gt Main Project gt Framework created from sources in Main
  • Keras 1.0 支持 scipy 稀疏矩阵吗?

    我找不到关于 keras 是否支持 scipy 稀疏矩阵作为训练 测试向量的明确答案 我已阅读此链接 这似乎意味着它没有https www kaggle com c walmart recruiting trip type classifi
  • R闪亮滑块输入显示时间

    我有一个与 R Shiny 中的 sliderInput 相关的问题 在 sliderInput 中 该值是一个数字 一些示例显示该数字是 number 但是 如果我想将 sliderInput 的值显示为时间 例如 10 00 15 00
  • 如何循环匹配正则表达式的所有元素?

    案例如下 我想找到与正则表达式匹配的元素 targetText SomeT1extSomeT2extSomeT3extSomeT4extSomeT5extSomeT6ext 我在 javascript 中使用正则表达式 如下所示 reg n
  • Xcode 自动完成块内块(以及它们所在的块......)

    如何设置一个块属性 该属性将另一个块属性作为参数 以便自动完成功能为两个块提供所有必需的参数 为了进一步解释 我将演示自动完成功能如何仅适用于一个块属性 In AppDelegate h 为所有需要访问 block 属性的类创建一个引用 A
  • 如何阻止 PHP 向客户端发送数据,同时仍在服务器中运行 PHP 代码?

    当我遇到一个导致我的 PHP 程序无限循环的错误时 我想到了这个问题 下面是一个示例情况 假设我有一个接收图片上传的PHP网页 该页面可能是图像上传表单的响应页面 在服务器中 脚本应将图像存储在临时文件中 然后 脚本应该向客户端输出一条确认
  • 预处理 C# - 检测方法

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