我正在开发一个C#项目,我假设我有一个包含这样的字符串:
string content = "[IF FullName = 'Bob Smith']Hello my friend";
content += "[ELSEIF TotalPurchases > 1000]Dear valued customer";
content += "[ELSE]Dear [FirstName]";
content += "[ENDIF]";
我们假设我有一个键/值字典,其中键是“FullName”和“TotalPurchases”,值是“Jane Doe”和“500”。什么是解析内容的好方法,最重要的是评估“IF ... ELSE ... ENDIF”?
是否有可以利用的开源项目,或者我应该编写自己的代码来解析内容?
答案 0 :(得分:0)
我有点困惑。这真的是你的字符串,还是你在谈论由C#源代码生成的字符串?
我假设后者,我可能只是自己解析它,因为它不是过于复杂和有点专业。我写的还有text parser helper class可以帮助你。
答案 1 :(得分:0)
一种选择是用实际的C#if语句逻辑替换上面的'If Else End If'文本数据,并在运行时编译动态构建的C#文本以评估if逻辑。处理这种动态C#编译的主要类是CSharpCodeProvider类
CsharpCodeProvider信息 http://msdn.microsoft.com/en-us/library/microsoft.csharp.csharpcodeprovider.aspx