首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Handlebars.NET中提供自定义值绑定

在Handlebars.NET中提供自定义值绑定
EN

Stack Overflow用户
提问于 2020-04-04 23:11:28
回答 2查看 93关注 0票数 0

我正在尝试使用.net核心和handlebars构建一个代码生成框架,并且我需要定制表达式如何映射到handlebars.net中的值。这是可能的吗?我最接近的做法是将输入对象转换为字典,但这并没有给我带来所需的灵活性,有没有什么接口可以实现这一点?

EN

回答 2

Stack Overflow用户

发布于 2020-06-01 05:08:03

如果我没弄错你的意图,你可以看看Handlebars.CSharp > IObjectDescriptorProvider (usage example)。

P.S. Handlebars.CSharp是我维护的Handlebars.Net的一个分支。

更新:

提到的功能已经合并到Handlebars.Net

票数 1
EN

Stack Overflow用户

发布于 2020-04-05 02:49:12

我最终创建了一个将任何对象转换为字典的自定义接口。这是当前的实现,如果有人最终需要它的话。

代码语言:javascript
复制
public interface IHandlebarsContextConverter
{
    IDictionary<string, object> Convert(object @object);
}

public class HandlebarsContextConverterFields : IHandlebarsContextConverter
{
    public IDictionary<string, object> Convert(object @object)
    {
        return @object.GetType()
            .GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
            .ToDictionary(x => x.Name, x => x.GetValue(@object));
    }
}

public class HandlebarsContextConverterProperties : IHandlebarsContextConverter
{
    public IDictionary<string, object> Convert(object @object)
    {
        return @object.GetType()
            .GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic)
            .ToDictionary(x => x.Name, x => x.GetValue(@object, null));
    }
}

var converter = new HandlebarsContextConverterMerge(
        new HandlebarsContextConverterFields(),
        new HandlebarsContextConverterProperties());
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61030167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档