RazorEngine性能研究(反射的延深)
先说下结论
using System.Diagnostics;using RazorEngine;using RazorEngine.Templating;
//脚本化的C#想写对还是有点麻烦的,还好Razor能给出有用的错误信息。public class RazorPropertySetter<TEntity> where TEntity :class{string PropertyName;bool Inited = false;private RazorPropertySetter(){ }public static RazorPropertySetter<TEntity> Create( string propertyName){RazorPropertySetter<TEntity> rs = new RazorPropertySetter<TEntity>();rs.PropertyName = propertyName;return rs;}public void Set(TEntity entity , object value){string cacheKey = entity.GetType().FullName + "--" + this.PropertyName;DynamicViewBag viewBag = new DynamicViewBag();viewBag.AddValue("PropertyValue", value);if (Inited == false){string template = "@{Model."+PropertyName+ "= ViewBag.PropertyValue;}";Engine.Razor.RunCompile(template, cacheKey, typeof(TEntity), entity,viewBag);Inited = true;}else{Engine.Razor.Run(cacheKey, typeof(TEntity), entity, viewBag);}}}
//测试用类public class TestData{public string Title { get; set; }}
//测试代码TestData data = new TestData();data.Title = "V1";RazorPropertySetter<TestData> setTitle = RazorPropertySetter<TestData>.Create("Title");Stopwatch watch = new Stopwatch();watch.Start();setTitle.Set(data, "V00");watch.Stop();

RazorEngine性能研究(反射的延深)的更多相关文章
- 2019-11-29-C#-性能分析-反射-VS-配置文件-VS-预编译
原文:2019-11-29-C#-性能分析-反射-VS-配置文件-VS-预编译 title author date CreateTime categories C# 性能分析 反射 VS 配置文件 V ...
- 2019-8-31-C#-性能分析-反射-VS-配置文件-VS-预编译
title author date CreateTime categories C# 性能分析 反射 VS 配置文件 VS 预编译 lindexi 2019-08-31 16:55:58 +0800 ...
- C# 性能分析 反射 VS 配置文件 VS 预编译
本文分析在 C# 中使用反射和配置文件和预编译做注入的性能,本文的数据是为预编译框架,开发高性能应用 - 课程 - 微软技术暨生态大会 2018 - walterlv提供 本文通过代码生成工具,使用C ...
- DataReader类型化数据读取与装箱性能研究
前言 在各种ORM框架或者SQL映射框架(例如MyBatis,SOD框架之SQL-MAP功能)中,都有将查询的结果映射为内存对象的需求,包括映射到实体类.简单类型(例如Java的POJO,.NET的P ...
- HBase学习笔记-HBase性能研究(1)
使用Java API与HBase集群交互时,需要构建HTable对象,使用该对象提供的方法来进行插入/删除/查询等操作.要创建HTable对象,首先要创建一个带有HBase集群信息的配置对象Confi ...
- Linux性能研究(总)
http://www.vpsee.com/2009/11/linux-system-performance-monitoring-introduction/ http://www.jb51.net/L ...
- MYSQL开发性能研究——INSERT,REPLACE,INSERT-UPDATE性能比较
一.为什么要有这个实验 我们的系统是批处理系统,类似于管道的架构.而各个数据表就是管道的两端,而我们的程序就类似于管道本身.我们所需要做的事情无非就是从A表抽取数据,经过一定过滤.汇总等操作放置到B表 ...
- MYSQL开发性能研究——批量插入的优化措施
一.我们遇到了什么问题 在标准SQL里面,我们通常会写下如下的SQL insert语句. INSERT INTO TBL_TEST (id) VALUES(1); 很显然,在MYSQL中,这样的方 ...
- Go-For Range 性能研究
文章转载地址:https://www.flysnow.org/2018/10/20/golang-for-range-slice-map.html 如果我们要遍历某个数组,Map 集合.Slice 切 ...
随机推荐
- 用Flex实现常见的几种布局
用Flex实现常见的几种布局 1.水平,垂直居中. <style type="text/css"> .container{ display: flex; width: ...
- Asp.net 基于Cookie简易的权限判断
基于Cookie简易的权限判断代码,需要的朋友可以参考下. 写入Cookie页面,创建cookie后,设置cookie属性,并添加到Response.Cookies中读取cookie,利用cookie ...
- 线性期望(BUPT2015校赛.F)
将整体期望分成部分期望来做. F. network 时间限制 3000 ms 内存限制 65536 KB 题目描述 A social network is a social structure mad ...
- NodeJS版本EasyDarwin开源流媒体服务器开发心得
title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...
- DropdownList异步刷新GridView数据
前台代码: <div style=" clear:both; width:800px; text-align:center; margin-left:auto; margin-righ ...
- HBase1.2.4基于hadoop2.4搭建
1.安装JDK1.7, Hadoop2.4 2.下载 hbase 安装包 下载地址:http://apache.fayea.com/hbase/1.2.4/hbase-1.2.4-bin.tar.gz ...
- Introduction to Mathematical Thinking - Week 9
错题 评分出错 题目要求的是 "any" ,而答案只给出了一个.所以认为回答者没有理解题意,连 any 都没有理解.所以 0 分. 第一,标准的归纳法只能对自然数使用,而题目要求的 ...
- <2013 12 01> 一篇很好的关于windows编程的入门指导(2013年末写的,比较前沿)
我之前做了不少嵌入式开发,从单片机到ARM到RTOS到Linux等等,可以说走的是电气工程师的路线,对编程也是实用性的,跟计算机学院的科班套路不同.最近同学做一个windowsCE的项目请我帮忙,之前 ...
- 使用GUID作为数据表主键的好处(转)
http://blog.itpub.net/3875/viewspace-789520/ 分类: 数据库开发技术 使用GUID作为数据表主键的好处 [@more@] 使用GUID作为数据表主键的好处 ...
- 前端基础 & 初识JS(JavaScript)
JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中),后将其改名ScriptEase(客 ...