gpt4 book ai didi

c# - 我应该采用哪种方法在 C# 中进行模板化?

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

我有什么我有存储在数据库中的模板,以及在 C# 中转换为字典的 JSON 数据。

示例:

模板:“你好{FirstName}”

数据:“{FirstName: 'Jack'}”

通过使用正则表达式提取模板中 {} 内的任何内容,这很容易处理一级数据。

我想要什么我希望能够比第一层更深入地了解 JSON。

例子:

模板:“你好{姓名:{First}}”

数据:“{姓名:{名:'Jack',姓:'Smith'}}”

我应该采取什么方法? (以及关于从哪里开始选择的一些指导)

  1. 正则表达式
  2. 不在模板中使用 JSON(支持 xslt 或类似的东西)
  3. 其他

我也希望能够循环遍历模板中的数据,但我完全不知道从哪里开始!

谢谢你

最佳答案

你很幸运! SmartFormat完全按照您的描述进行。它是一个轻量级的开源字符串格式化实用程序。

它支持命名占位符:

var template = " {Name:{Last}, {First}} ";

var data = new { Name = new { First="Dwight", Last="Schrute" } };

var result = Smart.Format(template, data);
// Outputs: " Schrute, Dwight " SURPRISE!

它还支持列表格式化:

var template = " {People:{}|, |, and} ";

var data = new { People = new[]{ "Dwight", "Michael", "Jim", "Pam" } };

var result = Smart.Format(template, data);
// Outputs: " Dwight, Michael, Jim, and Pam "

您可以查看 Named Placeholders 的单元测试和 List Formatter查看更多示例!

它甚至有多种错误处理形式(忽略错误、输出错误、抛出错误)。

注意:命名占位符 功能使用反射和/或字典查找,因此您可以将 JSON 反序列化为 C# 对象或嵌套的 Dictionaries,它会很好用!

关于c# - 我应该采用哪种方法在 C# 中进行模板化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8024819/

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