我正在尝试为类似 QML 的标记语言编写一个解析器,并且我希望允许在标记中使用 C# 表达式。因此,一个示例可能如下所示:
ClassName {
Property1: 10
Property2: Math.Sqrt(123)
Property3: string.Format("{0} {1}", "Hello", "World")
}
(这也有点像 ASP.NET 的 Razor 引擎,但 afaics Razor 不使用 Roslyn?)
我该怎么做?我只想解析一个表达式,无论是文字、方法调用、lambda 等。我尝试过使用CSharpSyntaxTree.ParseText
但这需要一个完整的文件,并且我找不到任何似乎与此用例相关的文档。
你需要打电话CSharpSyntaxTree.ParseText()
,并通过一个CSharpParseOptions
with SourceCodeKind.Interactive
,它允许顶级表达式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)