C# 代码生成器是否适用于多语言笔记本?

Do C# code generators work in polyglot notebooks?

提问人:John Melville 提问时间:9/29/2023 最后编辑:John Melville 更新时间:9/29/2023 访问量:42

问:

我想将 C# 代码生成器用于多语言笔记本。(我的最终目标是从我想分析的 CSV 或 excel 文件生成一个强类型对象模型。在最初的测试中,我创建了一个新笔记本,并将其放在第一个单元格中

using System.Text.RegularExpressions;

public partial class Holder
{
    [GeneratedRegex("A*b+")]
    public partial Regex AbFinder();
}

我希望它能正确编译并生成 AbFinder 的实现,但我收到一条错误消息:

错误:(6,26):错误 CS8795:部分方法“Holder.AbFinder()”必须具有实现部分,因为它具有辅助功能修饰符。

错误消息使我相信代码生成器从未运行过,或者生成的代码从未添加到编译中,因为该属性应该调用生成器来实现部分方法。GeneratedRegexAbFinder

我做错了什么吗?

C# 源生成器 csharp-source-generator 多语言笔记本

评论

1赞 Jeanot Zubler 9/29/2023
我认为这与笔记本无关。将代码粘贴到普通 c# 文件中失败,并显示相同的错误消息。如果你仔细阅读它,你只需要在方法中添加一个可访问性修饰符,所以public partial Regex AbFinder();
0赞 John Melville 9/29/2023
你是对的,这是不正确的 c# 代码。但是,使用可访问性标记(我首先尝试过)执行此操作会失败并显示不同的错误消息。我已经更新了问题。谢谢你的收获。

答: 暂无答案