gpt4 book ai didi

c# - 是否存在将源代码转换回 CodeCompileUnit 的现有方法?

转载 作者:太空狗 更新时间:2023-10-29 21:48:18 24 4
gpt4 key购买 nike

我们在自己的设计器中使用 DesignSurface 和所有 IDesignerHost 的优点。然后将设计的表格以我们自己的定制格式保存下来,一切都很好。我们还想将表格导出为基于文本的格式(我们已经这样做了,因为它并不难)。

但是,我们还想将该文本导入回设计器的文档中,这涉及将设计器代码返回到 CodeCompileUnit 中。不幸的是,没有实现 Parse 方法(毫无疑问,这是有充分理由的)。有其他选择吗?我们不想使用标准 .NET 安装中不存在的任何东西(例如随 Visual Studio 安装的 .NET 库)。

我目前的想法是编译导入的文本,然后实例化表单并将其属性和控件复制到设计表面对象,然后只捕获新的 CodeCompileUnit,但我希望有更好的方法。谢谢。


更新:虽然有些人可能对我们的进展感兴趣。到目前为止,不太好。简要概述一下我发现的是,Parse 方法没有实现,因为它被认为太难了,存在可以完成这项工作的开源解析器,但它们并不完整,因此不能保证在所有情况下都能正常工作( NRefactory 是来自 SharpDevelop 项目的其中之一,我相信),并且从实例到设计器的控件复制目前还不能正常工作。我相信这是因为虽然控件被添加到设计器表面包装的表单实例中,但设计器表面并不知道它们的包含。我们的下一个尝试是模拟剪切/粘贴,看看是否能解决问题。显然,这是一个非常糟糕的解决方法,但我们需要它发挥作用,所以我们会接受打击并留意替代方案。

最佳答案

您始终可以编写自己的 C# 解析器。这样您就可以确定它的完整性。

在您的情况下,因为您不需要诸如智能感知之类的任何东西,所以您可能只需使用解析器生成器即可。

但是,即使您手写一个,也可能不会超过一个月。

关于c# - 是否存在将源代码转换回 CodeCompileUnit 的现有方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/155586/

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