我想知道是否有任何用于创建对象图的模板引擎?有许多创建 HTML 或其他字符串结果的内容。但我想要一个吐出对象的模板引擎。可以说是预处理器。
我有一个应用程序需要某种预定义的对象图,用于呈现特定的页面小部件。例如,我的页面上有一个工具栏,但每个页面都有不同的工具栏。它可能看起来非常相似。但例如按钮 Add 将指向一个页面上的不同 URL,而不是另一个页面。
示例对象图(部分):
IList<ToolbarItem> toolbar = new List<ToolbarItem> {
new ToolbarButton {
Text = PageResources.NewText,
Url = Url.Action("Add", "Items"),
Icon = ToolbarIconType.New
},
new ToolbarSeparator(),
new ToolbarDropDown {
Text = PageResources.DropDownText,
Icon = ToolbarIconType.Filter,
Items = new List<ToolbarDropDownItem> {
new ToolbarDropDownItem {
Text = PageResources.FirstItem,
Url = Url.Action("Whatever", "Filter")
},
new ToolbarDropDownItem {
Text = PageResources.SecondItem,
Url = Url.Action("BlahBlah", "Filter"),
Icon = ToolbarIconType.Search
},
...
}
},
...
};
这个静态定义(带有动态资源和动态 URL 助手调用)可能会变得非常冗长和复杂。想一想类似于 Word 的类似功能区的工具栏。很复杂很长。
我希望将这些对象生成模板存储在数据库中,并且每个页面都可以读取它们自己的内容,然后模板引擎将生成它并使用特定的资源类型 + 键来放入本地化数据。同样的事情也适用于操作' 网址...
在对象反序列化(XML 或 JSON)中进行了类似的操作。但内置(反)序列化技术不支持变量替换或资源链接或类似的。最好的办法是支持资源链接和 lambda 表达式。
总结一下:是否有任何 .net 对象图模板引擎/预处理器可以提供我需要的东西?