ASP.NET中使用CodeDomProvider调用js文件中的js方法
类别:编程学习 浏览量:378
时间:2016-4-16 ASP.NET中使用CodeDomProvider调用js文件中的js方法
ASP.NET中使用CodeDomProvider调用js文件中的js方法一、新建 test.js文件
public static function getJsResponse(str) {
var $t = "2";
var $u = new Date();
var $v = new Date($u.getTime() + 315360000000);
var $w = new Date($u.getTime());
if ($t.length < 10) {
var $x = $u.getTime().toString();
for (var i = 2; i <= (32 - $x.length); i++) $t += Math.floor(Math.random() * 16.0).toString(16);
$t += $x;
};
$t = encodeURIComponent($t);
return "WT_FPC=id=" + $t + ":lv=" + $u.getTime().toString() + ":ss=" + str ;
}
二、动态编译、执行Js代码的方法
public static class JsHelper
{
/// <summary>
/// 执行JS方法
/// </summary>
/// <param name="methodName">方法名</param>
/// <param name="para">参数</param>
/// <param name="filePath">js文件路径</param>
/// <returns></returns>
public static string GetJsMethd(string methodName, object[] para,string filePath)
{
string path = AppDomain.CurrentDomain.BaseDirectory + filePath;
string str2 = System.IO.File.ReadAllText(path);
StringBuilder sb = new StringBuilder();
sb.Append("package aa{");
sb.Append(" public class JScript {");
sb.Append(str2);
sb.Append("}}");
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
CodeDomProvider _provider = new Microsoft.JScript.JScriptCodeProvider();
CompilerResults results = _provider.CompileAssemblyFromSource(parameters, sb.ToString());
//如果JS有错,这里会报 找不到某个 .dll 的错误,我们可以利用下面的语句捕获到具体的错误信息。
if (results.Errors.Count > 0)
{
Console.WriteLine("Errors:");
foreach (CompilerError ce in results.Errors)
{
string errorMessage=ce.ToString();
}
}
Assembly assembly = results.CompiledAssembly;
Type _evaluateType = assembly.GetType("aa.JScript");
object obj = _evaluateType.InvokeMember(methodName, BindingFlags.InvokeMethod,
null, null, para);
return obj.ToString();
}
}
三、调用
public string Main()
{
object[] para = new object[] { "学习也休闲" };
string wt_fpc = JsHelper.GetJsMethd("getJsResponse", para, @"Scripts\\\\test.js");
return wt_fpc;
}
结果如图
标签:ASP.NET
您可能感兴趣
- ASP.NET记录错误日志的方式有哪些
- ASP.NET获取网页中的图片
- ASP.NET中XML与DataSet的相互转换
- ASP.NET私有构造函数作用
- 开源asp.net(apache下支持asp.net的实现方法)
- ASP.NET中重载(Overload)和覆写(Override)
- ASP.NET方法重载
- asp.net中fileupload上传文件的方法
- Asp.net页面传值乱码
- ASP.NET批量下载文件
- ASP.NET中Obsolete属性
- windowsserver2008部署php项目(win2008 r2 服务器环境配置FTP/ASP/ASP.Net/PHP)
- ASP.NET的Random随机数
- ASP.NET常用的代码收集
- Asp.net Mvc模型绑定
- ASP.NET中Server对象的用法
- 这里输入关键词(怎么输入关键词搜索)
- 得这个 难治病 的人太多了,300个人赶到杭州商量怎么办(得这个难治病的人太多了)
- 经度,世界时间腕表的灵魂(世界时间腕表的灵魂)
- 阿里最新财报公布 三季度营收增长3 ,将增加150亿美元回购额度 在美股价小涨(阿里最新财报公布)
- 赵薇时胖时瘦 最近变美少女 原因在这里 躺着就变瘦(赵薇时胖时瘦最近变美)
- 学会这26种姿势,你就可以和兵哥哥切磋了(你就可以和兵哥哥切磋了)
热门推荐
- anaconda如何配置python3.7(WIn10+Anaconda环境下安装PyTorch避坑指南)
- phpmysql完全学习手册教程(Windows下搭建PHP开发环境Apache+PHP+MySQL)
- canvas绘制图像文件方法(Canvas多边形绘制的实现方法)
- python中if判断数据类型(基于python if 判断选择结构的实例详解)
- python多线程实现(python多线程并发让两个LED同时亮的方法)
- vue组件方法里如何修改data(vue项目中使用rem替换px的实现示例)
- 类型初始值设定项引发异常 解决方法
- docker运行tomcat服务(使用 docker部署tomcat并接入skywalking的使用)
- vue websocket实时刷新数据(Vue+WebSocket页面实时刷新长连接的实现)
- 宝塔面板解除域名绑定代码(宝塔面板网站防跨站攻击open_basedir无法关闭解决办法)