c#有好用的模板引擎吗?本人想用模板引擎,制作生成代码功能,包括 html, sql,或者代码生成器 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tctc4869
V2EX    .NET

c#有好用的模板引擎吗?本人想用模板引擎,制作生成代码功能,包括 html, sql,或者代码生成器

  •  
  •   tctc4869 2019-10-24 11:14:21 +08:00 5900 次点击
    这是一个创建于 2181 天前的主题,其中的信息可能已经有所发展或是发生改变。

    支持.net FrameWork 4.5.2,本人想用模板引擎,制作生成代码功能,包括 html,sql,或者代码生成器

    支持 c#变量类型,数组,字集合,集合对象,自定义对象。树形对象。支持指定多层对象名的属性访问(比如${abc.abc.abc})

    支持模板引擎区域的变量定义

    支持 if else swich,for 循环,若支持递归那更好了

    支持模板引擎区域过程中调用特殊的方法或命令代码的终止模板生成,这样的返回结果将替换成,自定义的字符串,由 c#那边处理

    第 1 条附言    2019-10-24 13:23:31 +08:00
    最好要能支持的 dynamic expander = new ExpandoObject();这种
    第 2 条附言    2019-10-25 09:02:34 +08:00
    各位推荐了一下 T4,那我简单看了一下 T4 教程,感觉功能多,但是其使用方式太重了,不符合要求,不想用。
    我想要的是基于 String 对象内容的特定区域替换的模板引擎这种轻量级语言。例如 DotLiquid 这种,轻量级,有基本模板引擎功能,但是有一个对于我来说的缺陷,就是不支持读取 Dynamic expander = new ExpandoObject(); 这种类型
    19 条回复    2020-10-26 17:52:54 +08:00
    qinxg
        1
    qinxg  
       2019-10-24 11:27:59 +08:00
    T4
    beginor
        2
    beginor  
       2019-10-24 12:17:04 +08:00
    razor
    tctc4869
        3
    tctc4869  
    OP
       2019-10-24 12:24:08 +08:00
    @beginor 我要用在桌面程序上,所以不考虑服务端的
    clijiac
        4
    clijiac  
       2019-10-24 12:48:06 +08:00
    T4
    tctc4869
        5
    tctc4869  
    OP
       2019-10-24 12:52:46 +08:00
    @clijiac T4 这个支持自定义对象和 dictionary 字典吗?以及某些属性显示方式?
    clijiac
        6
    clijiac  
       2019-10-24 12:58:31 +08:00
    beginor
        7
    beginor  
       2019-10-24 13:30:33 +08:00 via Android
    @tctc4869 razor 可以单独使用的,不是非得服务端
    Rwing
        8
    Rwing  
       2019-10-24 13:37:03 +08:00
    是的,一般都用 T4 来做代码生成器
    tctc4869
        9
    tctc4869  
    OP
       2019-10-24 13:47:44 +08:00
    @beginor 那在 Nuget 下哪个,我下了一个 RazorEngine 这个我运行一个简单提示过时警告,内容为:Please use the Engine.Razor instance instead
    tctc4869
        10
    tctc4869  
    OP
       2019-10-24 14:12:55 +08:00
    @Rwing
    @clijiac

    T4,我就看了一下教程,我感觉不是轻量级,而且是用另外的语言和 C#杂糅编写了。这不是我想要的方式。
    我想要的模板引擎,是能把一个 String 变量的值进行模板生成替换操作的框架的。也就意味着,可能需要含有这种操作,即接收用户在 TextBox 输入的含有模板引擎的代码。然后进行模板替换操作
    zohan
        11
    zohan  
       2019-10-24 15:35:49 +08:00
    用 openapi3 可以吗
    ququdaijinquan
        13
    ququdaijinquan  
       2019-10-24 17:31:40 +08:00
    T4 模板
    Itoktsnhc
        14
    Itoktsnhc  
       2019-10-24 17:37:00 +08:00
    dotw2x
        15
    dotw2x  
       2019-10-24 18:39:42 +08:00 via Android
    讲真,T4 考虑一下。
    mmdsun
        16
    mmdsun  
       2019-10-25 08:40:35 +08:00 via Android
    CodeSmith ?
    wanguorui123
        17
    wanguorui123  
       2019-10-25 11:28:27 +08:00
    CodeSmith
    fuis
        18
    fuis  
       2019-10-25 12:39:22 +08:00 via Android
    stringTemplate
    ONEO666
        19
    ONEO666  
       2020-10-26 17:52:54 +08:00
    @Itoktsnhc 这个不错
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5945 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 02:52 PVG 1052 LAX 19:52 JFK 22:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86