知识大全 详解.NET中的动态编译技术[2]
Posted 知
篇首语:弓背霞明剑照霜,秋风走马出咸阳。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 详解.NET中的动态编译技术[2]相关的知识,希望对你有一定的参考价值。
详解.NET中的动态编译技术[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
需要解释的是 这里我们在传递编译参数时设置了GenerateInMemory为true 这表明生成的DLL会被加载在内存中(随后被默认引用入当前应用程序域) 在调用GetTime方法时我们需要加入参数 传递object类型的数组并通过Reflection的InvokeMember来调用 在创建生成的Assembly中的对象实例时 需要注意用到的命名空间是你输入代码的真实命名空间 以下是我们输入的测试代码(为了方便 所有的代码都在外部输入 动态执行时不做调整)
using System;namespace Dynamicly public class HelloWorld public string GetTime(string strName) return Wele + strName + Check in at + System DateTime Now ToString();运行附件中提供的程序 可以很容易得到一下结果
改进的执行过程
现在一切看起来很好 我们可以编译代码并把代码加载到当前应用程序域中来参与我们的活动 但你是否想过去卸载掉这段程序呢?更好的去控制程序呢?另外 当你运行这个程序很多遍的时候 你会发现占用内存很大 而且每次执行都会增大内存使用 是否需要来饩稣飧鑫侍饽兀康比恍枰裨蚰慊岱⑾终飧龆鞲久挥茫倚枰葱械囊恍┐蟮挠τ没崛梦业?a class= channel_keylink href= //server chinaitlab / target= _blank >服务器crzay 不堪重负而疯掉的
要解决这个问题我们需要来了解一下应用程序域 NET Application Domain是 NET提供的运行和承载一个活动的进程(Process)的容器 它将这个进程运行所需的代码和数据 隔离到一个小的范围内 称为Application Domain 当一个应用程序运行时 Application Domains将所有的程序集/组件集加载到当前的应用程序域中 并根据需要来调用 而对于动态生成的代码/程序集 我们看起来好像并没有办法去管理它 其实不然 我们可以用Application Domain提供的管理程序集的办法来动态加载和移除Assemblies来达到我们的提高性能的目的 具体怎么做呢 在前边的基础上增加以下步骤
cha138/Article/program/net/201311/14507相关参考
详解.NET中的动态编译技术[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 代码的动态编译
详解.NET中的动态编译技术[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ·创建另外一个
详解.NET中的动态编译技术[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于客户端的输
详解.NET中的动态编译技术[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 接下来在原来基
详解.NET中的动态编译[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 需要解释的是这里我
详解.NET中的动态编译 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 代码的动态编译并执行是一
详解.NET中的动态编译[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 代码的动态编译并执
详解.NET中的动态编译[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!usingSystem
详解.NET中的动态编译[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 对于客户端的输入程
详解.NET中的动态编译[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 接下来在原来基础上