寻找 C# 代码解析器 [关闭]

2024-02-13

我正在寻找一组类(最好在 .net 框架中),它们将解析 C# 代码并返回带有参数的函数列表、类及其方法、属性等。理想情况下,它将提供构建我自己的代码所需的所有内容智能感知。

我有一种感觉,鉴于 .net 框架提供了所有反射功能,类似的东西应该存在于 .net 框架中,但如果没有,那么开源替代方案就足够了。

我正在尝试构建的基本上类似于 Snippet Compiler,但有所不同。我想先弄清楚如何获取代码 dom。

我尝试用谷歌搜索这个问题,但我不确定正确的术语是什么,所以我一无所获。

编辑:由于我希望将其用于类似智能感知的处理,因此实际上编译代码将无法工作,因为它很可能不完整。抱歉,我应该先提到这一点。


虽然 .NET 的 CodeDom 命名空间提供了代码语言解析器的基本 API http://msdn.microsoft.com/en-us/library/system.codedom.compiler.codedomprovider.parse.aspx,它们没有被实现。 Visual Studio 通过其自己的语言服务来实现这一点。这些在可再发行框架中不可用。

你也可以...

  1. 编译代码,然后对生成的程序集使用反射
  2. 看看诸如 Mono C# 编译器之类的东西,它创建了这些语法树。它不会是像 CodeDom 这样的高级 API,但也许您可以使用它。

可能有CodePlex 上的一些东西 http://www.codeplex.com/csparser或类似的网站。

UPDATE
请参阅此相关帖子。C# 解析器 https://stackoverflow.com/questions/81406/parser-for-c

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

寻找 C# 代码解析器 [关闭] 的相关文章

  • 以文化中立的方式将字符串拆分为单词

    我提出了下面的方法 旨在将可变长度的文本拆分为单词数组 以进行进一步的全文索引处理 删除停止词 然后进行词干分析 结果似乎不错 但我想听听关于这种实现对于不同语言的文本的可靠性的意见 您会建议使用正则表达式来代替吗 请注意 我选择不使用 S
  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C# 中通过 Process.Kill() 终止的进程的退出代码

    如果在我的 C 应用程序中 我正在创建一个可以正常终止或开始行为异常的子进程 在这种情况下 我通过调用 Process Kill 来终止它 但是 我想知道该进程是否已退出通常情况下 我知道我可以获得终止进程的错误代码 但是正常的退出代码是什
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 垃圾收集器是否在单独的进程中运行?

    垃圾收集器是否在单独的进程中启动 例如 如果我们尝试测量某段代码所花费的进程时间 并且在此期间垃圾收集器开始收集 它会在新进程上启动还是在同一进程中启动 它的工作原理如下吗 Code Process 1 gt Garbage Collect
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何从两个不同的项目中获取文件夹的相对路径

    我有两个项目和一个共享库 用于从此文件夹加载图像 C MainProject Project1 Images 项目1的文件夹 C MainProject Project1 Files Bin x86 Debug 其中有project1 ex
  • 将控制台重定向到 .NET 程序中的字符串

    如何重定向写入控制台的任何内容以写入字符串 对于您自己的流程 Console SetOut http msdn microsoft com en us library system console setout aspx并将其重定向到构建在
  • 基于 OpenCV 边缘的物体检测 C++

    我有一个应用程序 我必须检测场景中某些项目的存在 这些项目可以旋转并稍微缩放 更大或更小 我尝试过使用关键点检测器 但它们不够快且不够准确 因此 我决定首先使用 Canny 或更快的边缘检测算法 检测模板和搜索区域中的边缘 然后匹配边缘以查
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • ListView:带有 LinkMovementMethod 的 TextView 使列表项不可点击?

    我想做的 包含如下消息的列表 这是用户编写的消息 它将很好地换行到下一行 就像这样 我拥有的 ListViewR layout list item
  • 如何在VB6用户控件中实现高级自定义属性?

    抱歉 除了 高级自定义属性 之外 我不知道如何命名它 如果我知道 我会先搜索一下 我正在使用第三方控件处理遗留代码 在VB6中 当您将该控件拖到窗体上时 您可以在 属性 窗口中看到该控件支持的所有属性 比如MarginLeft Margin
  • 如何避免关闭传递给我包装在 Reader 流中的方法的 InputStream?

    我正在创建一个接受单个 Java 方法InputStream作为一个论点 为了方便使用基于字符的流 我包装了提供的InputStream在方法开始时执行如下 public void doStuff InputStream inStream
  • ListView 不随分组滚动

    我只是改变了我的ListView使用分组 但现在我不能使用ScrollTo不再了 我创建了一个简单的应用程序 这样您就可以看到问题 XAML 页面看起来像 我目前没有在我的应用程序中使用 XAML 但我会在即将推出的版本中使用
  • 将dat文件导入R

    提前为这个问题的简单性道歉 我正在尝试使用以下代码将 dat 文件从网站导入到 R 中 www http www nilu no projects ccc onlinedata ozone CZ03 2009 dat data lt rea
  • 如何正确地将 C ioctl 调用转换为 python fcntl.ioctl 调用?

    以下是一个例子重置串行端口 http www roman10 net how to reset usb device in linux 在 Linux 中我想翻译以下代码片段 fd open filename O WRONLY ioctl
  • Rails 模型属性在数据库中没有相应的列

    我有一些不需要任何持久性的 Rails 模型 但是我希望 Rails 认为该模型实际上具有属性 x y z 因此当在控制器中调用像 to json 这样的方法时 我可以免费获得它们 例如 class ModelWithoutTableCol
  • @Types/node/index.d.ts TypeScript 错误 TS2309

    我有一个使用 SystemJs 的 Net Core Angular 2 项目 我最近从 Typings 升级到了 Types 截至 2016 年 12 月 21 日 该项目已使用适用于 Net Core 1 0 1 TypeScript
  • 自定义 SSL 证书颁发机构?

    是否有可以添加到我的浏览器的自定义 SSL 证书颁发机构 我们使用很多内部网址 例如 http www somproject somebranch http www somproject somebranch 用于在各个分支机构工作 如果我
  • PyQt:QFileDialog.getExistingDirectory 使用默认目录,与用户无关

    当使用QFileDialog getExistingDirectory我找到了指定目录默认路径的方法 我想在我的 Linux Mint 机器上的 用户 主文件夹中使用默认目录 我用了 my dir QtGui QFileDialog get
  • 理解Android的

    我不明白图层列表是如何工作的 我看了官方的带有一些示例的文档 http developer android com guide topics resources drawable resource html LayerList但它并不像预期
  • Django Forms 和 Bootstrap - CSS 类和

    我在用着推特引导程序 https github com twitter bootstrap tree 2 0 wip使用 Django 来渲染表单 Bootstrap可以很好地格式化您的表单 只要您有CSS它期望包含的类 然而 我的问题是
  • ArrayList 的 ConcurrentModificationException [重复]

    这个问题在这里已经有答案了 我有以下代码 private String toString List
  • 实体框架 4.1:无法从 DbQuery 转换为 ObjectQuery

    我有以下代码 public void DeleteAccountsForMonth int year int month var result from acm in this database AccountsOnMonth where
  • SQL 查询的日期时间参数

    我正在重构我的代码 考虑这个例子 public virtual List
  • Sherlock 操作栏的菜单项背景

    我在 Sherlock 操作栏中呈现自定义视图时遇到问题 发生的情况是我已经成功地在操作栏中设置了自定义视图 旨在将标题文本视图设置在中心 但是当我设置其他菜单项 例如刷新 时 它的背景会显示为黑色 主页按钮也会发生同样的情况 请浏览以下快
  • 加载本地数据谷歌colab

    我有一个 npy 文件 largeFIle npy 保存在我的谷歌驱动器上的同一个 colab笔记本 文件夹中 我保存了我的谷歌colab笔记本 我正在尝试使用下面的代码将数据加载到我的笔记本中 但是我收到以下错误 当我在笔记本电脑上本地运
  • C# 从 List 获取键和值

    给定一个列表 private List
  • java 的 servicewrapper 的替代品?

    我用过服务包装器 http wrapper tanukisoftware org doc english download jsp然而 在过去的几次 双重许可证对于商业产品来说有些复杂 通常你必须付费 是否有具有类似功能的完全自由和开源软件
  • 寻找 C# 代码解析器 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一组类 最好在 net 框架中 它们将解析 C 代码并返回带有参数的函数列表 类及其方法 属