﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-陋室铭</title><link>http://www.cnblogs.com/cuihongyu3503319/</link><description>                永远也不要停下学习的脚步(大道至简至易)      </description><language>zh-cn</language><lastBuildDate>Wed, 10 Feb 2010 01:11:52 GMT</lastBuildDate><pubDate>Wed, 10 Feb 2010 01:11:52 GMT</pubDate><ttl>60</ttl><item><title>异度装甲解惑（转载）</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2010/02/02/1661420.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Mon, 01 Feb 2010 16:14:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2010/02/02/1661420.html</guid><description><![CDATA[<p>阅读: 11 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2010-02-02 00:14 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/02/02/1661420.html" target="_blank">原文链接</a></p><p>（转载）这个故事说来复杂，不过我以有限的日文程度尽量把它说成我看得懂的方式，希望能对了解这故事有所帮助。当然，我的坏习惯是会拿既有的卡通人物来比喻，不喜欢的人也请见谅。&nbsp;<wbr> </p>
<p><font face="宋体">1.神&nbsp;<wbr></font></p>
<p><font face="宋体">　　这故事中的&#8220;神&#8221;有两个，一个是人造的，一个是被抓来的。话说，一万年前，一群人为了称霸宇宙而造出个星际间兵器&#8220;迪乌斯&#8221;。迪乌斯会和生命或无生命的物质不停的融合，甚至整个星球都会被它同化。当这群人向某星球迁移时迪乌斯失控暴走了，把整个宇宙船&#8220;Eldridge&#8221;都同化吞噬，绝望之下船长只好令船自爆&#8230;&#8230;&nbsp;<wbr></font></p>
<p><font face="宋体">　　以上这段就是片头，不用讲大家也知道。不过这还没完，因为被自爆的迪乌斯虽然坠落在附近的行星，但尚未完蛋，迪乌斯为了复活，开始它漫长的复活计划。怎么做呢？因为迪乌斯的本体实在太复杂了，不可能靠再生就长回来。所以，它的方法是&#8220;创造&#8221;一个能让它再生的环境！</font></p>
<p><font face="宋体">　　对迪乌斯而言，虽然不是全知全能的，也很接近了，所以&#8220;创造&#8221;对它而言并非不可能：首先，要有光&#8230;&#8230;（开玩笑的，当然没这么难啦）迪乌斯造出了第一个&#8220;女人&#8221;（就是片头里那个）。她并不叫Eve，因为她似乎不是为了和谁配对搭档而生的，而是用来&#8220;产生一切&#8221;，地位上比较像希腊神话&#8220;变形记&#8221;的盖亚，或者说是中国神话里的女蜗。</font></p>
<p><font face="宋体">　　这个创世的过程，故事中叫&#8220;原初之时刻&#8221;。迪乌斯的主控电脑&#8220;卡德摩尼（希伯来语&#8220;原初&#8221;之意）&#8221;分为两个部份，无生命的部份负责逻辑运算，有生命的生物电脑负责混沌、暧昧的运算。而其生物电脑部分又分为三元件：Persona、Anima、阿尼姆斯（Persona原意是希腊古典剧的演员演出时戴的面具，指无意识层外在的态度即&#8220;人格&#8221;。Anima、阿尼姆斯则是拉丁文中的&#8220;魂&#8221;的男、女性，指内在的态度。）。</font></p>
<p><font face="宋体">　　而Persona部份的生物元件就利用了 &#8220;Intron/Exon置换（Intron指的是真核生物遗传基因中，不会转译成蛋白质的部份，这部份的讯息会在转录后切掉，只有Exon部份会转译成蛋白质。至今Intron部份的遗传基因究竟传达了什么讯息，还是热门的研究题目，有一说法是生物会利用Exon置换的方式，将Intron的遗传讯息转译出来，因而形成新种生物，目前仍然不明。）&#8221;的方法改变了遗传基因，让自己进化，形成了&#8220;太母&#8221;这个女人。然后，这个&#8220;太母&#8221;再产生这星球的&#8220;人&#8221;，等到将来人类发展到能当做迪乌斯修复的生物零件的时候，它的复活计画就成功了。</font></p>
<p><font face="宋体">　　这样不是等很久吗？也许迪乌斯是没有&#8220;时间&#8221;&#8220;老&#8221;这种概念的。一万年对它而言不算很久，何况最终目的是征服全宇宙，等久一点有啥关系？对这世界的&#8220;人&#8221;而言，迪乌斯确实是他们的造物主，说它是神并不为过。不过这个&#8220;神&#8221;的最终目的是造出一个世界然后与它同化，把整个世界变成它的本体，人人都成为神的一部份，这就是这故事中的&#8220;人类补完计划&#8221;。</font></p>
<p><font face="宋体">　　OK，那另一个&#8220;神&#8221;咧？片头中的那些人类，他们宇宙船的动力炉是一种&#8220;事象变移机关&#8221;，名字叫&#8220;左哈鲁&#8221;，能发出强大的精神能量（故事中就叫这种能量&#8220;以太&#8221;）。迪乌斯同化了整艘Eldridge的时候自然也是以左哈鲁为动力源，但随着Eldridge自爆，左哈鲁也砸到行星上去了。所以后来这星球上的生物和文明，所使用的气功啦、魔法啦之类的精神能量，都是因为这星球上的某处有着&#8220;左哈鲁&#8221;的关系。迪乌斯在Eldridge自爆时失去了左哈鲁，不过并没完全失去对左哈鲁的能量的控制力，它依然能使用左哈鲁的能量，只是要造出&#8220;完全体&#8221;的迪乌斯，就必需把坠落的Eldridge浮上来（因为Eldridge的中央电脑&#8220;拉杰尔之树（意为掌管知识的大天使）&#8221;中有建造迪乌斯&#8220;完全体&#8221;不可或缺的知识。）...</font></p>
<p><font face="宋体">　　因此迪乌斯的完全复活还要花不少时间，反正这对它不是问题... 关键是，左哈鲁这个&#8220;事象变移机关&#8221;里面的无限能量来源究竟是什么？其实那不只是无限的能源而已，&#8220;它&#8221;是有意志的高次元生命体！就像&#8220;传说巨神伊甸王&#8221;中的伊甸力，以及&#8220;无敌金刚009-超银河传说&#8221;中的超能源一样！在我们的眼里看来，这种&#8220;有意志的无穷能量&#8221;就是&#8220;神&#8221;，不过它并不如此自称，它自称是&#8220;波动存在&#8221;。</font></p>
<p><font face="宋体">　　不过，波动存在并不是自己高兴跑来我们这个次元当神的，它是被抓来的，是当时暴走的迪乌斯利用&#8220;事象变移机关&#8221;把它从高次元抓来的（因为从我们的次元来看，波动存在只是单纯的能量而已）。所以波动存在倒霉的被抓到左哈鲁里面被当成单纯的能量来用。更倒霉的是它虽然是高次元的生命体，被降格到这个次元来后，变成只是能量，意志反而受制约无法发挥（这个关念可以参见五星或仙术超攻壳，高次元的神灵力量在低次元根本无从发挥，反而要借重低次元的灵体或肉身。），所以它很想回去，却无法离开，除非有人帮忙破坏&#8220;左哈鲁&#8221;（因为那是&#8220;波动存在&#8221;被束缚在这个次元的&#8220;肉身&#8221;）。否则它只是被迪乌斯所使用的&#8220;能量&#8221;而已，没有改变这个现世的力量。</font></p>
<p><font face="宋体">　　波动存在唯一的方法就是找这个世界中的&#8220;人&#8221;。严格说来，迪乌斯是这个现世中具有无穷力量的&#8220;神&#8221;，波动存在可说是被困在现世的高次元&#8220;神上神&#8221;（因为它才是&#8220;无穷力量&#8221;的来源）。它的目的与迪乌斯全然不同，它只要能破坏左哈鲁和迪乌斯，让它回到高次元就行了，因为它不想留在这边被迪乌斯当成发电机来用^_^。</font></p>
<p><font face="宋体">2.人（hito）&nbsp;<wbr></font></p>
<p><font face="宋体">　　一万年前（原初的时刻），&#8220;太母&#8221;生下了第一批&#8220;人&#8221;，包括故事中的天帝&#8220;该隐&#8221;与&#8220;嘎杰鲁法院&#8221;的那些元老，又称为&#8220;阿尼姆斯&#8221;原体13人。他们拥有强大的神力。因为原本生物元件&#8220;阿尼姆斯&#8221;的功能，就是担任主电脑的生物元件的维修制造。而&#8220;anima之器&#8221;则是来让生命体与非生命体融合的东西，所以装有anima之器的&#8220;Gear拔拉&#8221;能够与操纵者融合，完全照操纵者的意志行动，是迪乌斯的机动战斗终端机。</font></p>
<p><font face="宋体">　　故事中的一般&#8220;人&#8221;严格说来都是他们的子孙。那，一般人类为何反而没有神力？因为造出一般&#8220;人&#8221;的目的是要给迪乌斯当它的零件用的，这个计画名叫&#8220;马拉克（希伯来语中&#8220;天使&#8221;之意）&#8221;，简称&#8220;M计画&#8221;。所以造人也造了不止一次...造出来的人若是不合用，就来个大毁灭，再重造一遍...故事中的人类已经是&#8220;第五世代M计画&#8221;造出的人了，而且五百年前曾经发生过反乱事件，所以后来造出的人都在DNA（构成细胞的蓝图）上加了&#8220;封印（limiter）&#8221;，抑制他们的力量，并且控制他们的思考。该隐以及这些嘎杰鲁法院的老人们，一万年来都在慢慢进行着让迪乌斯复活的工作。更有趣的是&#8220;女人&#8221;。</font></p>
<p><font face="宋体">　　这世界所有的&#8220;女人&#8221;和男人一样都是由最初的&#8220;太母- 米安&#8221;生出来的，但不同的是，&#8220;女人&#8221;有能力产生下一代的生命，也就是说，她们每一个都带有&#8220;米安&#8221;的特质！每一个女人都是源出自&#8220;米安&#8221;，所以都带有她的遗传基因！这有啥关系呢?关系大了：这故事中有很重的&#8220;投胎转世&#8221;&#8220;灵魂附体&#8221;的观念，而它的基础就在于遗传基因！子孙的遗传基因中，偶而会有一两个与祖先完全一样的情形，这并不希奇，&#8220;巴比路二世&#8221;的概念就是这个。但在本故事中，这种&#8220;相同的遗传因子&#8221;就是投胎转世或灵魂附体的根据！</font></p>
<p><font face="宋体">　　因为所有的女人都是源出自&#8220;米安&#8221;，所以这个&#8220;米安&#8221;的元灵可以附身在任何一个女人的身上！去执行迪乌斯的命令&#8230;&#8230;换个观点来看，当一个女人被&#8220;米安&#8221;的元灵附体时，也可以说是&#8220;她体内源自&#8216;米安&#8217;的遗传基因觉醒了。&#8221;</font></p>
<p><font face="宋体">　　同理，当一个人的遗传基因与过去的某人相同时，在这故事中就是表示&#8220;此人是那个人投胎转世的&#8221;。为什么有这种奇怪的理论？因为&#8220;前世记忆&#8221;这种在现今科学无法解释的事情，在本故事中是解释为&#8220;前世记忆是写在遗传基因的Intron中！&#8221; 所以，&#8220;米安&#8221;的记忆、人格等等都会保存在女性遗传的Intron中，一旦这一部份基因觉醒，那个女人就算是被&#8220;米安&#8221;的元灵附身了。一万年来&#8220;米安&#8221;虽然不像该隐一样一直活着，却用这种方式一直存在，为迪乌斯执行&#8220;人类补完计画&#8221;。</font></p>
<p><font face="宋体"><br />&nbsp;<wbr><br />3 回复：《Xenogears》（异度装甲）解惑&nbsp;<wbr><br />&nbsp;<wbr>故事中也有提到，女性&#8220;想把一切都收回为自己一部份&#8221;的本能是来自迪乌斯&#8220;世界都是造物神的一部份&#8221;这种想法的投射。也是&#8220;米安&#8221;所留下来的。那，波动存在呢? 它也不甘示弱，找上了一个接触到&#8220;左哈鲁&#8221;的男人（据说是因为男人有着&#8220;想要回到母亲子宫&#8221;的本能，与波动存在&#8220;想要回归高次元&#8221;的冲动有同调的现象），这个人就叫做&#8220;接触者&#8221;。他接受了波动存在的&#8220;天命&#8221;要破坏迪乌斯的补完计画，把波动存在从左哈鲁中获得解放。当然，接触者也有着常人没有的本领，那就是能把记忆用遗传基因的Intron来传承！</font></p>
<p>　　因此，接触者也能用类似的方式来投胎转世，只要出现了和祖先遗传基因一样的子孙，接触者的记忆、人格就会在他的身上复活。波动存在还做了一个可怕的改变&#8212;&#8212;让&#8220;米安&#8221;分裂成两个。因为它是迪乌斯的力量根源，虽然不能直接操纵或干涉&#8220;米安&#8221;的行动，却藉由迪乌斯的力量来造出这种转变。</p>
<p>　　波动存在因应接触者的内心要求，把&#8220;米安&#8221;的&#8220;爱&#8221;、&#8220;牺牲&#8221;这些部份分离了出来，而成为一个名叫&#8220;艾蕾海姆（艾莉）&#8221;的女性。而另一部分则保留了&#8220;支配&#8221;、&#8220;力量&#8221;等兵器特征。当然，两个都是&#8220;母&#8221;，彼此间是对极的存在。艾蕾海姆是为了接触者心中的愿望而造出的，所以她虽不能像&#8220;米安&#8221;一般凭依附身，却也与接触者一样有投胎转世的本领，生生世世都注定与接触者相爱，投胎几次都一样（这设定有点像中国的&#8220;七世夫妻&#8221;。</p>
<p>　　说起来，这故事的中心主旨简单无比，那就是&#8220;爱情&#8221;。而且指的是男女间的恋情！可能正因如此，所以故事中对上床之类的情节毫不避讳，因为不提反而不自然。）一万年间，米安、接触者、艾莉就以这样的转世、附身的方式不停的出现，进行各自的计划。每个女人身上都有&#8220;米安&#8221;或&#8220;艾莉&#8221;的成份，只是或多或少而已。故事中的第一代接触者叫&#8220;亚伯&#8221;，他是一万年前移民船坠落时的唯一生还者（也就是说，他不是迪乌斯造出来的&#8220;人&#8221;）。波动存在间接的造出了艾莉来与亚伯相爱，但似乎被当时的天帝发现了接触者的阴谋，而将他们杀害。讲了这么多一万年前的往事，总该讲到故事的本题了吧？别急，还早咧！</p>
<p>3.历史&nbsp;<wbr></p>
<p>　　各位可以看得出来，Xenogears的世界并不是一个科学文明的世界。它的设定比较接近《五星物语》，是一个曾经有过高度科技文明，如今却退化回中古世纪的世界。前面说过因为&#8220;左哈鲁&#8221;的存在，这世界充满了&#8220;以太&#8221;能量，所以会发展出利用以太能量的魔法文明，并不奇怪。但是这高科技的文明并不是主角他们所生存的时代，而是四千年前。主角他们则将这个曾经存在的文明叫做&#8220;杰波依姆文明遗迹&#8221;，主角们所使用的科技机械多半都是从这个文明遗迹发掘出来的，就连机械人Gear也是仿造遗迹的发掘物。而故事中的&#8220;教会&#8221;之所以拥有高科技就是因为他们有重现发掘出的遗迹文明的本事。其他像索拉利斯、谢巴特这些所谓的高科技国家，也只是保有比较多的古代技术而已。</p>
<p>　　四千年前的鼎盛的杰波依姆文明时代，他们所遗留的技术中，对主角们所处的时代影响最严重的就是&#8220;Nano technology（nano是&#8220;10的九次方分之一&#8221;之意，指的是制造以纳米为尺寸大小的机械。）&#8221;因为这种技术可以制造分子大小的机械，所以连构成生命的基本巨分子都可以&#8220;做&#8221;出来，当然也可以任意的改动分子结构，可以将生物体从遗传因子的层次加以改变。（这和现今的遗传工程不能混为一谈，遗传工程只能改变最初的一个细胞（如受精卵），对已经长成多细胞的个体无能为力。但这nano技术能用造的nanomachine取代任何生物分子，当然也能改造&#8220;身上的每一个细胞&#8221;。）</p>
<p>　　事实上，这技术正是迪乌斯复活所必需的&#8212;&#8212;将人类改造成它所要的零件。（反过来看，片头中那些&#8220;人&#8221;一定也拥有nano技术才能造的出迪乌斯。）等待了数千年，迪乌斯创造的人(hito)终于拥有足以修复它的技术了。但是迪乌斯并没有在四千前的杰波依姆时代复活，直到五百年前一个叫卡雷鲁连的男人出现，才开始开花结果&#8230;&#8230;这是后面的事了，这边先不谈。当然，一万年间不断投胎的艾莉与接触者，在杰波依姆时代也有他们这对爱侣的痕迹。当时的接触者叫吉姆（此命名由来是一位提倡Nano machine的科学家。），是一位医生兼生化学者；而当时的艾莉则是一位护士。艾莉和吉姆是当时的一对爱侣，但受到当时科技公害与战争的影响，人类的遗传因子出现障碍，平均寿命只有三十年，出生率也大为下降。吉姆他们也是受害者，他们生不出小孩。<br />&nbsp;<wbr></p>
<p>&nbsp;<wbr><br />　　为了解决自己和人类灭绝的问题，身为科学家的吉姆开始以nano技术向人类遗传基因中的缺陷挑战，企图突破这层障碍。他的成果是一个用nano mechine造出的生物巨分子所组成的生命体！一个名叫艾美拉达的小女孩！她的身体的组成成份的分子都是Nano machine造成的，她整个人是Nano machine的群体！吉姆夫妇把她当做自己的小孩，但无奈时事所趋，Nano技术终究被用在战争上，连她也无法幸免。金姆夫妇为了保护她惨遭军方杀害，而杰波依姆文明也毁在自身愚蠢的战争下。爱美拉达则静静的留在遗迹中，等待下一个时代的人来发掘她&#8230;&#8230;</p>
<p>　　注：主角们的时代的Gear名叫&#8220;Gear&#8216;阿杀&#8217;&#8221;（意为&#8220;人造出来的东西&#8221;），是仿造古代人的&#8220;Gear&#8216;拔拉&#8217;&#8221;（意为&#8220;神造出来的东西&#8221;）而来。但&#8220;Gear&#8216;拔拉&#8217;&#8221;的原理也是杰波依姆文明的遗产（遗迹中有记载Gear的实验，以及其动力机关SG和HyperMode的原理。）。Xenogears的历史又翻过了一页&#8230;&#8230;接下来这一页是五百年前（MD！本题前面的故事都这么长，这游戏该不是还要出&#8220;前传&#8221;吧？亚伯与艾莉、金姆与艾莉、拉康与艾莉&#8230;&#8230;）从服装和世界观来看，杰波依姆时代影射的是我们的近未来！难道Xenogears指的是四千年后的未来的事? 杰波依姆时代的米安则有两人，分别在不同的政府中主导战争，把当时的人类引向毁灭的一方（杰波依姆时代的人类是第三世代人的雏形，因为当时的米安判断这种人类有重大缺陷，不适合当迪乌斯的零件，因此故意将他们毁灭）。</p>
<p>4.还是历史&#8230;&#8230;</p>
<p>　　时间到了五百年前。天帝所统治的天上国&#8220;索拉利斯&#8221;仗着它强大的科技力量，高压统治地上人。索拉利斯的人民把地上人当家畜，自认是饲主。长此以往，当然有人会反抗。而在五百年前的这一次大战最为猛烈。地上人的反抗者主要聚集在&#8220;尼桑&#8221;和后来的&#8220;谢巴特&#8221;（谢巴特是这场大战后建立的国家，他们把轨道电梯顶端的太空站切离变成天空浮城谢巴特，而残留的轨道电梯遗迹则被人称为&#8220;巴别塔（还记得天之痕中的&#8216;巴别之路&#8217;吗？）&#8221;，被教会封印。），不过，尼桑的势力主要是来自于宗教，而谢巴特虽反抗索拉利斯，其实是想建立自己的势力，在这重考量之下，谢巴特背叛了尼桑，故意让索拉利斯的主力去进攻尼桑。</p>
<p>　　战争的结果很惨烈，不过这之中对后来故事影响至巨的就是：死了一个女人，疯了两个男人。当时尼桑正教的大教母索菲雅（五百前的艾莉）有两个深爱着她的男人，一个是画家拉康（五百年前的接触者），另外一个也是当时并肩作战的战士卡雷鲁连。当时并肩作占的还有女战士婕法（后来的谢巴特女王）以及罗尼法蒂玛（后来的阿贝王朝建国国王），以及一个叫雷列的战士。索菲雅和拉康的相爱因为彼此的身份悬殊而没有结果，拉康总因为觉得自己配不上索菲雅而自惭形秽；而卡雷鲁连看在眼中，也只能把感情深藏心中，全心投入科学研究（他研究的是三千五百年前，杰波依姆文明留下的Nano技术！）。只有索菲雅对拉康的爱始终没变。但一切都太迟了，在索拉利斯军主力的猛攻下，索菲雅牺牲了。卡雷鲁连为索菲雅的死而疯狂，并质疑天理何在：&#8220;如果这世上没有神，我就造出&#8220;神&#8221;给你看！&#8221;&nbsp;<wbr></p>
<p>　　之后，他利用他擅长的Nano科技让自己活了五百多年，并且成为索拉利斯的首席技术官。帮助嘎杰鲁法院的老人们完成迪乌斯的复活，以达成他&#8220;造神&#8221;的目的。但，他真正的目的不是让迪乌斯的复活成功&#8230;&#8230;那身负&#8220;接触者&#8221;使命的拉康呢? 他也因为自己无力守护索菲雅而悔恨，又在当时的&#8220;米安&#8221;唆使之下，出发寻找&#8220;更强的力量&#8221;，结果，他找到了&#8220;左哈鲁&#8221;（这已经是接触者与左哈鲁的第二次碰面了）。第二次的接触给了拉康恐怖的力量，在恸哭、激怒的主导下，拉康的思念造出了&#8220;迪亚波罗斯（恶魔）&#8221;组成的军团，开始毁灭全世界！&nbsp;<wbr><br />&nbsp;<wbr></p>
<p>&nbsp;<wbr>　　这段恐怖的历史，被后人称为&#8220;崩坏之日&#8221;。后来，在众多&#8220;Gear&#8216;拔拉&#8217;&#8221;的协力下，才击退了破坏神的军团，但损失极为惨重。在这场战役中，索拉利斯的&#8220;嘎杰鲁法院&#8221;的长老们失去了生命，只有该隐活了下来，并成为后来索拉利斯的天帝。其他长老只能把记忆保存在中央电脑中，以资料的方式活存下来，因此他们只好四处寻找人类中具有祖先&#8220;阿尼姆斯&#8221;体质的人，希望能移植到这些人的肉体上（注）。</p>
<p>　　（注）故事中常常提到的&#8220;阿尼姆斯&#8221;指的就是这种&#8220;具有祖先体质的人&#8221;，这应该是一种返祖现象。这种人能与&#8220;Gear&#8216;拔拉&#8217;&#8221;同调，主角的伙伴有不少这种人，这也不是偶然的，&#8220;聚集阿尼姆斯&#8221;似乎也是接触者的特异功能之一。婕法成为谢巴特的女王，利用nano技术的延命装置让自己活了五百年。但，她永远为自己背弃了尼桑一事悔恨。罗尼法帝玛决心建立能与索拉利斯抗衡的国家，在伊格尼斯大陆南方建立了阿贝王国。拉康内心悔恨的一面却没就此消失。那一部份的怨念分离了出来，成为一股疯狂追求杀戮、破坏力的恶灵，其名为古拉夫！</p>
<p>　　古拉夫没有实体，是纯红的以太能量，五百年来它不断的找同调率高的人附体。之所以它有这种凭依附体的本领，大概也是因为它是从&#8220;接触者&#8221;中分离出来的怨念吧？原本&#8220;接触者&#8221;的任务只是消灭迪乌斯，解放波动存在而已。但古拉夫因为仇恨这世界，而把它的任务衍生成&#8220;毁掉这整个世界&#8221;。因此，他也不断在寻找他的本体-接触者的转世，希望把接触者整个人都拉到疯狂、破坏、杀戮的一边。</p>
<p>5.阴谋&nbsp;<wbr></p>
<p>　　那这五百年来，另一个&#8220;母&#8221;&#8212;&#8212;米安都在干什么呢? 当然，身负迪乌斯的使命，米安必需除掉&#8220;接触者&#8221;这个讨厌的敌人，但因为双方都会&#8220;投胎转世&#8221;、&#8220;借尸还魂&#8221;这一套，所以&#8220;杀死&#8221;这种方法是没多大用处的。一个男人一生中，可能被两个女人毁掉：一个是他母亲，一个是他妻子。米安终于逮着这个机会，附身到&#8220;接触者&#8221;投胎转世的母亲身上!&nbsp;<wbr></p>
<p>　　谢巴特的一名武官黄康，他的妻子卡莲生下了一个儿子黄，这就是&#8220;接触者&#8221;的转世。而米安成功的附身到卡莲身上!（或说，是卡莲身上&#8220;米安&#8221;的遗传因子觉醒了）黄小时候觉得妈妈很慈爱，但突然变了一个人，开始偷偷把他带到卡雷鲁连那边去做残忍的人体实验。黄康忙着公务，疏于照顾家中，也没发现此事，米安附身的卡莲得以每天折磨年尚幼小的接触者。虽然没能达成控制住接触者力量的目的，但至少把他给弄得人格失常了。为什么？因为黄受到母亲判若两人的折磨，开使产生了另一个名叫&#8220;伊德&#8221;的人格。原先黄的人格自我封闭了，每日沉醉在母亲温柔时的记忆中，却把&#8220;伊德&#8221;这个人格拿来当挡箭牌，外界来的一切痛苦的事都丢给伊德承受，黄原先的人格却缩在壳中不出来。长久以后，伊德因为受到的都是外界恶意对待的部份，养成了仇恨世界的性格。</p>
<p>　　关键之日终于到了，古拉夫四处找人附身，终于找到了它&#8220;接触者&#8221;的本体&#8212;&#8212;黄。在古拉夫的攻击下，黄康几乎被杀，受此刺激的黄爆发出&#8220;接触者&#8221;的神力，但却暴走不受控制&#8230;&#8230;没想到，被米安附身的卡莲，突然母性觉醒，舍身救了暴走的黄!受到母亲被自己的力量杀死在眼前的冲击，人格已经分裂的黄变得更加严重。原先的黄的人格不愿意接受母亲是被自己所杀的事实，反而把这个杀母的责任都推给伊德，自己则进一步自闭，躲在童年的美好回忆里。</p>
<p>　　伊德也更糟，因为他只受到世间恶意对待的一面，所以完全不愿意承认母亲舍身救自己的这件事，坚持&#8220;这世上从来没人爱过我&#8221;的记忆，让他变得更恨世。当然，因为这时候的&#8220;黄&#8221;已经完全自我封闭不问外界的事，所以整个身体都是在伊德的控制之下，包括&#8220;接触者&#8221;前几世记忆的管理，以及神力的运用等等，都是由伊德来接掌的。恨世的伊德，它的想法与古拉夫是很接近的。因此，在古拉夫的引导之下，伊德成为杀戮破坏的魔神！当时8岁的伊德就能独自毁灭了一个名叫&#8220;埃鲁鲁&#8221;的国家，然后连一起作战的索拉利斯军也一并杀光了。伊德从此被叫做&#8220;埃鲁鲁的恶魔&#8221;。<br />&nbsp;<wbr></p>
<p>&nbsp;<wbr><br />　　但是，黄康还活着。眼看自己儿子完全被&#8220;伊德&#8221;这个人格控制，心想这样可不行，所以就把黄体内&#8220;伊德&#8221;的人格给封印住，另外再加一重人格在黄身上，用这造出来的人格来管理这副身体&#8230;&#8230;我们游戏一开始所看到的&#8220;主角&#8221;，就是这个&#8220;人造的虚拟人格&#8221;!但因为这是黄康外加的人格，所以完全没有过去的记忆(当然，因为这个&#8220;人&#8221;根本就没有&#8220;过去&#8221;)，而且对于&#8220;感情&#8221;方面的事完全没有对应处理能力。</p>
<p>　　所以，每当主角情绪激动的时候，他的人格就不知该如何处理了。这时候，伊德就会出来接管身体的控制权!也就是我们所看到的&#8220;暴走&#8221;。此外，当主角昏迷的时候，伊德也会趁机接管这个&#8220;黄&#8221;的身体。而主角在梦中常见的情景，其实是伊德把过去的&#8220;黄&#8221;的记忆放给主角看（目的是为了让主角精神衰弱，好趁机夺回身体的控制权）。当然，在游戏后面，我们都看到了，主角发现自己只是个人造的虚拟人格，并在心中世界碰到了等着接管身体的&#8220;伊德&#8221;，和缩在壳中的&#8220;黄&#8221;。主角成功的把&#8220;黄&#8221;从壳里拖出来，让他面对外面世界&#8220;痛苦&#8221;的一面；也让&#8220;伊德&#8221;面对&#8220;母亲还是爱我的&#8221;这个事实，打破他&#8220;世上从来没有人爱过我&#8221;的信念。三个人格终于统一了&#8230;&#8230;当然，这也要归功于艾莉的呼唤，以及黄康的协助。</p>
<p>　　&#8220;黄康&#8221;？对了，自己的儿子遭遇这么多变故的时候，他跑哪去啦？把伊德封印后再造个虚拟人格就不管啦? 当然不是，他化名为Wiseman，自称是黄康的师兄，带着面具来帮助主角!为何不露出真面目相认呢？原因就是&#8212;&#8212;古拉夫附身在黄康的身上！为什么？别忘了，古拉夫是拉康&#8220;悔恨自己没能保护索菲雅&#8221;的怨念体，因此悔恨自己没能保护妻儿的黄康，与它的同调率极高。是最佳的附身对象!&nbsp;<wbr></p>
<p>　　也就是说，每当黄康的悔恨之心大于理智时，他就会变成古拉夫，努力的把主角带向杀戮与破坏的一方。而每当黄康的理智压抑了仇恨时，他就化身为Wiseman ，引导主角正确的方向。这种变来变去的荒唐行为，才是黄康不敢用真面目面对儿子的原因吧! 而最后，面对统一成功的黄，古拉夫那股恨世的怨念终于被消解，牺牲自己去拖延迪乌斯完全吸纳左哈鲁的时间，上一代接触者-拉康的怨念终于消散了。</p>
<p>6.还是阴谋...&nbsp;<wbr></p>
<p>　　米安在附身的卡莲舍身救子后，又改附到另一个女人身上，这个女人就叫&#8220;米安&#8221;，也就是我们游戏中所看见的&#8220;米安&#8221;。她是索拉利斯军官&#8220;卡兰拉姆萨斯&#8221;的副官兼性伴侣。（他们应该不是夫妻吧?只是有肉体关系而已）卡兰拉姆萨斯，昵称卡尔。这个人是个倒霉的索拉利斯指挥官。从前，他自信满满的组织一个&#8220;元素&#8221;精锐部队，因为他不相信种族观念，大量启用优秀的地上人。&#8220;地上人或索拉利斯人都无所谓!实力最重要!&#8221;看起来卡尔好象是个平等主义者，其实不然。他只是不把&#8220;种族&#8221;和&#8220;阶级&#8221;画等号，但却是个把&#8220;实力&#8221;与&#8220;阶级&#8221;画等号的人，认为强者有权欺压弱者。</p>
<p>　　因此，他召集来的地上人精英还是都离开了他（其实他们是各自有理由的，休葛 (西坦)是秘密奉天帝之命去监视黄，而西格鲁特则是因为他是阿贝国王的私生子，要回去帮弟弟巴鲁特复国，所以他们其实并非背叛了卡尔）。遭到背叛的卡尔并没死心，又集结了新生&#8220;元素&#8221;部队，只不过这次是四个美少女&#8230;&#8230;但是卡尔的官运并不顺，和古拉夫一起去征讨埃鲁鲁国，结果却被伊德回马一枪，把他们的部队也一起全灭了。</p>
<p>　　后来担任特务部队&#8220;给布拉&#8221;的指挥官，协助阿贝王国，又屡次遭到主角一行人打败。种种的失败让他在嘎杰鲁法院的长老面前抬不起头，被骂成&#8220;废物&#8221;。其实，卡兰拉姆萨斯的真实身份是复制人!是卡雷鲁连以天帝该隐为蓝本而造出的复制人!这是卡雷鲁连在&#8220;第五世代M计画&#8221;中的一环，原本是要用人工造出&#8220;阿尼姆斯&#8221;，他的真名是&#8220;拉梅谢斯&#8221;，只有卡雷鲁连与米安知道。但是因为是&#8220;副本&#8221;，卡尔的精神呈现不稳定状态，也无法像该隐一样发挥神力，他唯一的特异功能就是能与任何一台&#8220;Gear&#8216;拔拉&#8217;&#8221;同调。（所谓&#8220;Gear拔拉&#8221;是古代留下的gear原型机，因为含有能与生命或非生命融合的&#8220;Anima(魂)之器&#8221;，所以只能与具有&#8220;阿尼姆斯&#8221;体质的人同调，只靠思想就能操纵...至于&#8220;Anima之器&#8221;其实是迪乌斯复活用的学习型电脑零件。这个后面再提。）&nbsp;<wbr></p>
<p>&nbsp;<wbr>　　不过，因为从当时的米安（卡莲）得知&#8220;接触者&#8221;即将投胎转世出现，那正牌 &#8220;阿尼姆斯&#8221;也会一个一个的出现（前面说过，&#8220;接触者&#8221;具有聚集有阿尼姆斯体质的人的能力。），所以卡尔这个&#8220;人造阿尼姆斯&#8221;也没什么用处了。不过，对卡雷鲁连而言，卡尔还有一个用处，就是用来对付天帝该隐!&#8220;阿尼姆斯&#8221;原体13人的工作，是在一万年间当做迪乌斯&#8220;造人&#8221;的素体，体内有生成迪乌斯种种零件的蓝图，万一造的人不适合当迪乌斯的零件，就要毁灭，然后还是得从他们身上来造人，同时他们也要监控M计画。这对卡雷鲁连的造神计画是一个阻碍，因为他不是真心要让迪乌斯复活成功。但，五百年前&#8220;崩坏之日&#8221;后，阿尼姆斯原体13人只剩下一个天帝该隐，嘎杰鲁法院的其他长老都只剩下电脑中的记忆。但，天帝的神力谁也对抗不了。</p>
<p>　　只有一个人能轻松的杀死天帝该隐，那就是该隐自身的复制人! 卡尔没什么神力，但天帝该隐的力量对他无效（大概是&#8220;敌我识别系统&#8221;无法辨识他吧！）。在卡雷鲁连和米安的教唆下，半狂乱的卡尔杀掉了天帝，再也没人可以阻止嘎杰鲁法院发动人类补完计画了。而卡尔也就真的完全失去利用价值了，真的是废物一个。其实卡尔还在培养状态的时候，原本卡雷鲁连是对他抱以厚望的，不过因为当时的米安已经先一步找到了&#8220;接触者&#8221;的投胎转世(黄)，所以卡雷鲁连也不那么重视卡尔了。所以卡尔特别的恨黄，不只是因为伊德打败过他，以及主角阻扰过他而已。</p>
<p>　　&#8220;要不是你，卡雷鲁连大人也不会把我当废物!&#8221; 但卡尔最后终究还是失败了。连他的枕边人米安，都只是个利用他的人而已。一般像卡尔这种可悲的丑角，最后下场都是不得好死，但是这游戏可不太一样！卡尔在大崩坏后不但没事，还有四个元素部队的美少女死心塌地的跟随他！&nbsp;<wbr></p>
<p>　　他本人只是受了打击而喃喃自语：&#8220;我是废物，我是垃圾&#8230;&#8230;&#8221; ，还被从前的老伙伴休葛与西格鲁特安慰：&#8220;你振作一点，你没看到她们是如此的爱戴你吗？&#8221;卡尔在四个美少女的爱戴下重拾信心，投向她们的怀抱&#8230;&#8230;&#8220;我一直没发现，我要找寻的东西，竟然近在眼前！&#8221;从此，卡尔与四个美少女过着幸福快乐的日子&#8230;&#8230;哇咧！这什么剧情？当反派还有这么爽的下场？MD！我也要去当坏人！</p>
<p>7.关于古拉夫的补充&nbsp;<wbr></p>
<p>　　前面说过了，古拉夫就是上一代接触者拉康的悔恨之心，分离出来的产物（拉康本人则投胎转世去了），因为他也接受了左哈鲁中的无穷以太能量，所以能发出强烈的杀气（红色以太）。他的Gear名叫&#8220;真Weltall&#8221;，这是五百年前拉康接受左哈鲁的能量造出的恐怖Gear。拉康死后，他的座机就由留下来的怨念古拉夫接管。</p>
<p>　　而主角的座机&#8220;Weltall（德语，意同&#8220;Worldall&#8221;）&#8221;也是古拉夫为他准备的。自从弑母的事件后，古拉夫就带着伊德，开这台座机到处乱杀。直到黄康清醒，把伊德封印，才摆脱了这台座机（三年前）。</p>
<p>　　古拉夫不死心，又把这台gear带到主角面前（就是游戏一开始的事件），以促进伊德的觉醒。说到这里，古拉夫与迪乌斯是敌对的，为何会与米安、卡雷鲁连采合作的态度?因为他们有一个目的是差不多的，就是把&#8220;接触者&#8221;毁掉。</p>
<p>　　古拉夫是要黄完全变成伊德，米安则是要他疯掉好加以控制，目的不同，目标相同。而且古拉夫经常阻挠、打败主角，是要他感觉自己的无力。若是他悔恨自己的无力而渴望得到力量的话，这种想法就与古拉夫完全同调！这一来就可以顺理成章的附身，而把&#8220;接触者&#8221;整个接受过来！只是古拉夫没想到，会因为自己所附身的黄康的觉醒，而被&#8220;爱&#8221;打败。至于主角那边的伙伴，好象没啥可写的，因为故事中都讲的满清楚的。大概提提女主角艾莉吧！</p>
<p>8.艾莉（艾蕾海姆）&nbsp;<wbr></p>
<p>　　如前所述，她是波动存在为了配合&#8220;接触者&#8221;的愿望，将&#8220;太母&#8221;分离出来的比较具有&#8220;爱&#8221;的特质的一半，和米安（具&#8220;支配&#8221;&#8220;力量&#8221;的兵器特质）是互为对极的存在。当然，她也具有&#8220;母&#8221;的神力，也能一再的投胎转世，每一代都与&#8220;接触者&#8221;相爱。只是她不管转世几次名字都不变，好象没啥道理...也因为这样，主角第一次见到她就自然而然的根据前世记忆而喊出&#8220;艾莉&#8221;这个名字（如果是一般女孩都会怀疑对方会不会是变态STALKER，为什么一见面就知道我的名字&#8230;&#8230;）。严格说来，艾莉才是&#8220;母&#8221;的主体，米安是补体。为什么？米安是因为受到迪乌斯的咒缚而带有兵器的性质，但，也因为她有着 &#8220;阻止孩子成长离去&#8221;的负面母性，这与迪乌斯&#8220;将人类都回归到造物神中，成为造物神的一部份&#8221;的目的不谋而合。<br />&nbsp;<wbr></p>
<p><br />&nbsp;<wbr><br />　　&#8220;乌罗波罗斯&#8221;之环，指的是咬住自己尾巴的蛇。在心理学上指一个人的&#8220;自我&#8221;尚未从无意识中诞生，不生也不灭的状态。当&#8220;自我&#8221;产生的时候，必需切断这个不生不灭的轮回之环。&#8220;太母&#8221;的负面母性就是阻止孩子的成长，也就这个环的象征。而艾莉则不同，虽然她的遗传因子的Intron中也有着&#8220;乌罗波罗斯&#8221;之环的讯息（故事中卡雷鲁连检查艾莉的身体时发现的。），但她可说是&#8220;维持着非觉醒状态乌罗波罗斯的米安&#8221;。</p>
<p>　　艾莉的自我牺牲的心态很重，但并非是利他主义使然，而是出自一种成熟的母性，对孩子自立的一种期许（没有我，你也要一个人好好活下去...这是历代的艾莉牺牲之前对接触者所说的遗言。）。这两种互相矛盾的性质，才是&#8220;母&#8221;的总和。投胎转世也带给艾莉不少困扰，首先是因为转世后的形貌不变，所以艾莉和她母亲一点也不像，害她常怀疑自己是不是抱来的...再来就是体内潜藏的神力。在索拉利斯的军校时代，艾莉曾经因为这种力量的暴走而夺走数条人命。当时一般以为那是Drive（索拉利斯战士服用的精神亢奋剂，用来提高战力）的副作用，只有少数人知道那是她体内的潜在力量所致。（大概也因为她有这种力量，所以她的Gear的主力武器是Funnel...那不是newtype才能用的东西吗？....）</p>
<p>　　惹出麻烦的艾利被贬调到特务组织"给布拉"，那是索拉利斯为了保持地上人的武力军衡而派遣的特务部队。依格尼斯大陆上有两个国家：北方的基斯雷布和南方的阿贝。因为基斯雷布的科技力量较强，所以"给布拉"的任务就是协助阿贝，以免基斯雷布太过强大。艾莉的任务是将基斯雷布的一台试验中的新型Gear盗往阿贝。其实那就是古拉夫做给伊德开的Gear&#8220;Weltall&#8221;！在伊德被黄康（Wiseman）封印变成主角的这三年间，为何这台Gear会跑到机斯雷布去？</p>
<p>　　从故事中可以看出，基斯雷布的大统领吉格穆特与古拉夫、米安之间是有某种合作关系的，所以这整件事根本就是他们的阴谋！果然，艾莉在经过基斯雷布与阿被国境之间的山村&#8220;拉汉&#8221;时突然发生迫降，让威托鲁掉到了拉汉村内。这是古拉夫的预谋，为的是让藏身于拉汉村的主角接触到威托鲁，促成伊德的觉醒。（古拉夫为何知道主角躲在拉汉村？当然，因为是黄康（Wiseman）把主角藏到这儿的，而古拉夫附身在黄康的身上！）任务失败迫降的艾莉逃进了黑月森林，在那里，她遇见了主角....接下来的故事大家都知道了。</p>
<p>　　天帝该隐一死，无人能阻止卡雷鲁连的计画了。他唆使嘎杰鲁法院的元老们使用&#8220;给提亚的小钥匙（语出自所罗门王的秘宝，为通往黄泉之国的门的钥匙）&#8221; 发动M计划。被设计成当做迪乌斯零件的人类们，纷纷变为异形（零件的形状！）。而嘎杰鲁法院的长老们也失去了利用价值，被卡雷鲁连解决掉了。修复迪乌斯的零件足够了，接着便是建造迪乌斯的蓝图和知识。卡雷鲁连在Eldridge遗迹内，夺取了中央电脑&#8220;拉杰尔之树&#8221;内的大量知识，并且抓了主角一行人当人质。让艾莉在"勾鲁勾达区"（注）演出了一场死斗...（坦白说，艾莉开的那台"Gear拔拉"还真像Berserker状态的诺贝尔钢弹.....）&nbsp;<wbr></p>
<p>　　(注)&#8220;勾鲁勾达区&#8221;的典故来自圆谷特摄&#8220;超人力霸王卫司（Ultraman Ace）&#8221;，力霸王四兄弟受困于勾鲁勾达星，被绑在十字架上。卫司单刀赴会前往救援，但却遇上了异次元超人&#8220;Acekiller&#8221;...这是非常有名的一话。等主角们赶去救艾莉时已经太迟了，米安放弃了原本附身的肉体（拉姆萨斯的副官），完全附身在艾莉的身上！艾莉体内的&#8220;乌罗波罗斯之环&#8221;觉醒，变成了完全的&#8220;太母&#8221;。成为迪乌斯复活的核心！艾莉的背叛让主角大受打击，伊德趁机觉醒，主角、伊德、小飞三个人格展开了一场统合大战，这个前面已写过了...最后是三位一体，变成三一万能侠... （不知这种三重人格的主角放到机战中能不能有三人份精神指令？）&nbsp;<wbr><br />&nbsp;<wbr><br />&nbsp;<wbr><br />&nbsp;<wbr>　　完全体的迪乌斯是足以称霸宇宙的恒星间战略统合兵器，还包括了输送用的超巨大要塞母舰&#8220;梅鲁卡巴（意为&#8220;天之车&#8221;）&#8221;，直径达80公里！在热血王子巴鲁特的&#8220;战舰对战舰、要塞对要塞的壮烈作战下，以&#8220;世界树四世号强袭型&#8221;和谢巴特军旗舰 &#8220;圣剑&#8221;为赌注，梅鲁卡巴终于被击落了。然而从要塞中间却冒出了巨大的迪乌斯！并且以&#8220;太母&#8221; （艾莉/米安）为核心，不停的吞噬周遭的一切！眼看着整个星球就要被迪乌斯同化了！这就是足以称霸宇宙的恒星间战略兵器的威力吗？失去了一切的主角们，只能以残存的世界树三世号和Xenogear，向迪乌斯进行最后的决战！Xenogear能完成它的使命吗？接触者、太母、以及卡雷鲁连三人的结局又将如何呢？</p>
<p>&nbsp;<wbr></p>
<p>　　迪乌斯与四柱神虽强大，但我方在黄的连续三掌机神黑掌之下，迪乌斯便完蛋了。左哈鲁也随之停顿，因此，这世上所有的以太能量都停止运转，当然使用以太能量的Gear们也一样。咦？为什么只有黄的Xenogear仍然能动？因为接触者和Xenogear的力量是直接来自波动存在的，因此不受左哈鲁停转的影响。但是，挣脱了左哈鲁的波动存在正要回归高次元，而当它要羽化时，它在低次元的&#8220;肉身&#8221;（能量）会被抛弃而一次爆发出来！眼看着世界就要被炸毁，迪乌斯的残骸却自动飞空升起，要离开星球！&#8220;是艾莉！她为了救大家准备牺牲！&#8221;立刻查觉此事的黄，开着唯一能动的Xenogear追了上去！在众人的鼓励和祝福下，Xenogear张开了光之翼一飞冲天！</p>
<p>　　在波动存在的能源体中，黄见到了艾莉的精神体，然而却有另一股精神阻止着他。&#8220;卡雷鲁连！&#8221; 卡雷鲁连的&#8220;人类补完计画&#8221;并不只是&#8220;把全人类都补完成迪乌斯的零件&#8221;这么简单而已，而是要大家都在波动存在羽化放弃能量肉身的时候，也同时放弃俗世的一切，与波动存在成为一体回到高次元。这世上的&#8220;物质&#8221;&#8220;能量&#8221;其实都只是高次元的空间的波动现象而已，一旦跟波动存在成为一体回去，就回到了一切都还未发生的&#8220;无&#8221;的世界，在那儿，宇宙尚未诞生，也无所谓毁灭。</p>
<p>　　&#8220;为什么你不让她补完呢？做个尘世的凡人，永远都活在&#8216;不完全&#8217;之下，一个人永远无法知道人在想什么，心与心之间永远隔着ATField，这样的&#8216;相爱&#8217;只是一再轮回的痛苦，你还看不透吗？&#8221; 但黄并不为这一番话所动！持续一万年的爱岂能被这一番话打消？何况，卡雷鲁连之所以这么想，只是因为索菲亚不了解、不接受他的爱罢了！ &#8220;啰嗦！人类就是因为生来不完全，才会彼此需要！所以才要互相寻找另一半来补完！尼桑的天使为何是一男一女，各自只有一只羽翼？因为要相互扶持才能飞翔？这个世界，首先要有&#8216;阴&#8217;、&#8216;阳&#8217;，太极生两仪，之后才能化生成万物。&#8216;拉杰尔之树&#8217;中出现的两股DNA的单一螺旋形象，也暗喻了此事，单单一股没有办法独存，一定要结合成双螺旋！&#8221;</p>
<p>　　&#8220;...你们就是要抱着永远摸不透对方心意，的永远无法互相了解的&#8216;人心&#8217;活下去吗？&#8230;&#8230;&#8221;在Xenogear面前出现了一只巨大的蛇女，那就是具体化的&#8220;乌罗波罗斯&#8221;！它要阻止人的自我从&#8220;无&#8221;中诞生，也就是要一切回归到&#8220;无&#8221;的负面母性的代表！但在Xenogear的机神黑掌之前，谁也抵挡不住！&#8220;黄&#8212;&#8212;！&#8221;艾莉的意识终于被放开了。&#8220;对不起，我以为，要救大家，就非这么做不可，我却忘了，救了大家，却留下悲伤的你，一点意义也没有。&#8221;一般的故事都是鼓吹牺牲小我完成大我的伟大情操，但这里不是。艾莉几乎犯下了当年索菲亚的大错，救了众人，却造成拉康永远的遗憾，导致古拉夫的怨念徘徊于世间&#8230;&#8230;为了终止这种互相不了解的轮回，两人决定生死与共，永不分离！</p>
<p>　　过去一万年来两人之间的悲剧，或许都是因为艾莉&#8220;为爱牺牲&#8221;的成份太重而造成的？在通往&#8220;无之次元&#8221;的&#8220;瑟菲罗特之道&#8221;上，决定同生共死的黄与艾莉，两人的灵体（意识?）手牵手，心连心，一起奔跑（因为是灵体所以是全裸的，可是...艾莉身上有逆光&#8230;看不到&#8230;呜），但还是慢了一步&#8230;&#8230;这时，卡雷鲁连用他剩余的意识力量救了两人。&#8220;你们就留下来当&#8216;人&#8217;吧，我要与神成为一体，回到&#8216;无&#8217;的世界。&#8221; 卡雷鲁连是被两人的爱感动了吗？也许吧，或者他也领悟到了，强拉着这样的艾莉与自己&#8220;合而为一&#8221;是一点意思也没有的。独自补完的卡雷鲁连，与波动存在一起消失在空间中，在那儿，放出了足以诞生一个新宇宙的能量（暗示了宇宙的起源）。在地上等待的众人，只见黄抱着艾莉，开着爱机，张开光之羽翼，自天空冉冉而降&#8230;&#8230;接触者与艾莉一万年来的爱情终于有了结果，斩断了轮回的宿命，掌握住真正的自由。<br />10.小人物悲歌 - 哈马</p>
<p>　　你在玩Xenogears中看到了什么？男女主角间的爱情故事？动画的名场面？巨大机械人的恶趣味？还是华丽的战斗声光？有趣的练功系统？对我而言是以上都有，但是，其中令人感叹的，并不只是发生在这些主要角色身上而已。这里所说的主要角色当然不止是男女主角，基本上，能被玩家操纵的角色都有他的地位，因为总会有些玩家特别喜爱某个角色。但是，Xenogears中很特别的是，连亚人的哈马（故事中的道具屋）也有它的故事！就像许多NPC一样，这些角色只能在固定的地点为玩家提供游戏中的服务，有的甚至还随传随到，它们在游戏中能扮演的就是这种地位，宛如视窗中的一个选项，既不能带去练功，也感觉不出是与玩家一起同生共死去冒险，只是不管到哪里它都会跟来的一个&#8220;功能&#8221;角色罢了... 但哈马却不同。</p>
<p>　　它原本只是个卖情报和道具的亚人，从基斯雷布与主角一同冒险，到过各种地方，最后还一起去了索拉利斯。但，就在大家要脱离索拉利斯时，哈马背叛了！挟持了艾莉为人质！黄：&#8220;哈马？&#8221;哈马：&#8220;抱歉了，老哥，我也很喜欢艾莉小姐，并不想伤害她，这么做是不得已的，请见谅！&#8221;利可：&#8220;哈马！你&#8212;&#8212;&#8221;哈马：&#8220;我&#8230;&#8230;我没法子啊！我不像老哥你们那么厉害！我可没办法跟索拉利斯军作对！你们武艺高强，可以天不怕地不怕，我可不行啊！&#8221;</p>
<p>　　事实上不只哈马如此，所有的NPC都一样，生死全凭编剧决定，毫无守护自己的力量。玩家操纵的角色可以越练越强，可以用各种方法改变命运（甚至金手指），只要练得够强，要离经叛道、毁神灭佛都办得到，单挑十万敌居也无所谓，虽千万人吾往矣&#8230;&#8230;但NPC呢？因为它们是不重要的配角。要这没有力量的小配角，追随主角们天涯海角去冒险，也太苛求了。哈马：&#8220;我不是老哥你们这种有实力的人，只好求得保全一命，投降吧！&#8221;然而，哈马的叛变终于在误杀了艾莉之母的悲剧下失败了，双手未曾沾过血、也没想到毫无力量可言的自己，会做出杀人这种行为，哈马惨叫着逃走了。经过了许久，再次出现于黄面前的，是已经没有利用价值，被改造成杀人兵器的哈马！</p>
<p>　　哈马：&#8220;呵呵，老哥，看到了吗？我也有力量了！和老哥你们是对等的了！哇哈哈哈&#8221; 然而被改造成杀人兵器的哈马终究不是黄等人的对手，改造它的人也并不期待它有能力打败黄等人，而是在它身上装了自爆装置，准备用它炸死黄等人而已。所谓&#8220;有了力量&#8221;的哈马，充其量也只是被人当成一颗炸弹来用。自爆而死的哈马，临终前恢复了&#8220;朋友&#8221;的语气，向过去曾经同甘共苦的利可与黄道歉&#8230;&#8230;真实世界的我们，谁也不会厉害的魔法、也练不出像RPG角色那样高强的武功，都只是&#8220;没有力量的小配角&#8221;而已。所谓&#8220;时穷节乃现&#8221;，谁又能保证自己不会像哈马一般茍且偷生？在一般重视&#8220;美形&#8221;&#8220;强力&#8221;的故事中，谁又会去在乎这种无力又不美形、举足无轻重的小配角？谁又会去管它们的悲哀？（哈马至少还有名字和脸，那些没名字没画脸的路人甲乙丙丁就更别提了...） Square这块Xenogears很难得的注重了这件事，这也是令我感动之处。</p>
<p>（付录）补充说明：&nbsp;<wbr></p>
<p>　　Serotonin：第二片一开始时，主角因为怕自己暴走变成伊德，而让谢巴特三贤者之一为他加上&#8220;感情控制&#8221;，连他的Gear也改成能随时使用&#8220;伊德系统&#8221;的状态...这里面有提到一个名词&#8220;Serotonin&#8221;。这个东西其实是一种神经传导物质，来自于amino acid的代谢产物，目前已知与人的食欲、情绪等有很大的影响，也是某些精神科疾病使用的药物。（这不是我的专门，只是在专讨中听过这方面的研究而已）</p>
<p>　　MassDriver：为了消除所有地上人DNA上的&#8220;封印（limiter）&#8221;，所以主角们把消除封印的Nano machine群，用遗迹中的MassDriver送上轨道散布。这个Mass Driver对Gundam迷应该不陌生吧！就是利用电磁加速轨道把物体弹射到太空用的巨大设施，&#8220;机甲战记Dragonal&#8221;&#8220;V Gundam&#8221;中都有出现过这个。&nbsp;<wbr><br />&nbsp;<wbr><br />&nbsp;<wbr>　　这段恐怖的历史，被后人称为&#8220;崩坏之日&#8221;。后来，在众多&#8220;Gear&#8216;拔拉&#8217;&#8221;的协力下，才击退了破坏神的军团，但损失极为惨重。在这场战役中，索拉利斯的&#8220;嘎杰鲁法院&#8221;的长老们失去了生命，只有该隐活了下来，并成为后来索拉利斯的天帝。其他长老只能把记忆保存在中央电脑中，以资料的方式活存下来，因此他们只好四处寻找人类中具有祖先&#8220;阿尼姆斯&#8221;体质的人，希望能移植到这些人的肉体上（注）。</p>
<p>　　（注）故事中常常提到的&#8220;阿尼姆斯&#8221;指的就是这种&#8220;具有祖先体质的人&#8221;，这应该是一种返祖现象。这种人能与&#8220;Gear&#8216;拔拉&#8217;&#8221;同调，主角的伙伴有不少这种人，这也不是偶然的，&#8220;聚集阿尼姆斯&#8221;似乎也是接触者的特异功能之一。婕法成为谢巴特的女王，利用nano技术的延命装置让自己活了五百年。但，她永远为自己背弃了尼桑一事悔恨。罗尼法帝玛决心建立能与索拉利斯抗衡的国家，在伊格尼斯大陆南方建立了阿贝王国。拉康内心悔恨的一面却没就此消失。那一部份的怨念分离了出来，成为一股疯狂追求杀戮、破坏力的恶灵，其名为古拉夫！</p>
<p>　　古拉夫没有实体，是纯红的以太能量，五百年来它不断的找同调率高的人附体。之所以它有这种凭依附体的本领，大概也是因为它是从&#8220;接触者&#8221;中分离出来的怨念吧？原本&#8220;接触者&#8221;的任务只是消灭迪乌斯，解放波动存在而已。但古拉夫因为仇恨这世界，而把它的任务衍生成&#8220;毁掉这整个世界&#8221;。因此，他也不断在寻找他的本体-接触者的转世，希望把接触者整个人都拉到疯狂、破坏、杀戮的一边。</p>
<p>&nbsp;</p><img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1661420.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/02/02/1661420.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/02/02/1661420.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>iframe 父窗口和子窗口的调用方法(转)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/28/1658215.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 28 Jan 2010 03:39:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/28/1658215.html</guid><description><![CDATA[<p>阅读: 22 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2010-01-28 11:39 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/28/1658215.html" target="_blank">原文链接</a></p>父窗口调用子窗口 <br />iframe_ID.iframe_document_object.object_attribute = attribute_value <br />例子 <br />onClick="iframe_text.myH1.innerText='http://www.pint.com';" <br />子窗口调用父窗口 <br />parent.parent_document_object.object_attribute = attribute_value <br />例子 <br />onclick="parent.myH1.innerText='http://www.pint.com';" <br /><br />上面在IE下没有问题，但在firefox下不正常。在firefox下，应该是 <br />父窗口调用子窗口 <br />window.frames["iframe_ID"].document.getElementById("iframe_document_object"&shy;).object_attribute = attribute_value <br />例子 <br />window.frames["iframe_text"].document.getElementById("myH1").innerHTML= "http://www.pint.com"; <br />子窗口调用父窗口 <br />parent.document.getElementById("parent_document_object").object_attribute = attribute_value <br />例子 <br />parent.document.getElementById("myH1").innerHTML = "http://www.adsf.com";&nbsp;<br /><br /><br />&nbsp;子窗口调用父窗口的例子：<br />example.htm:<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body&nbsp;</span><span style="color: #ff0000">onclick</span><span style="color: #0000ff">="alert(tt.myH1.innerHTML)"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Iframe&nbsp;</span><span style="color: #ff0000">name</span><span style="color: #0000ff">="tt"</span><span style="color: #ff0000">&nbsp;src</span><span style="color: #0000ff">="frame1.htm"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="250"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="200"</span><span style="color: #ff0000">&nbsp;scrolling</span><span style="color: #0000ff">="no"</span><span style="color: #ff0000">&nbsp;frameborder</span><span style="color: #0000ff">="0"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">iframe</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="myH2"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">hello,my&nbsp;wife</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;</span></div>frame1.htm<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">body&nbsp;</span><span style="color: #ff0000">onload</span><span style="color: #0000ff">="parent.myH2.innerText='hello,my&nbsp;friend';"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span></div>父窗口调用子窗口的例子：<br />exmaple.htm<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body&nbsp;</span><span style="color: #ff0000">onload</span><span style="color: #0000ff">="test.myH1.innerText='hello,my&nbsp;dear';"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">Iframe&nbsp;</span><span style="color: #ff0000">src</span><span style="color: #0000ff">="test.htm"</span><span style="color: #ff0000">&nbsp;id</span><span style="color: #0000ff">="test"</span><span style="color: #ff0000">&nbsp;width</span><span style="color: #0000ff">="250"</span><span style="color: #ff0000">&nbsp;height</span><span style="color: #0000ff">="200"</span><span style="color: #ff0000">&nbsp;scrolling</span><span style="color: #0000ff">="no"</span><span style="color: #ff0000">&nbsp;frameborder</span><span style="color: #0000ff">="0"</span><span style="color: #0000ff">&gt;&lt;/</span><span style="color: #800000">iframe</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span></div>test.htm<br />
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /><span style="color: #0000ff">&lt;</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;</span><span style="color: #800000">h1&nbsp;</span><span style="color: #ff0000">id</span><span style="color: #0000ff">="myH1"</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">hello,my&nbsp;boy</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">h1</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">body</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">&nbsp;<br /><img align="top" src="http://www.blogjava.net/Images/OutliningIndicators/None.gif"  alt="" /></span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">html</span><span style="color: #0000ff">&gt;</span></div><br />完整的例子 <br />test.htm<br />
<div style="margin: 5px 20px 20px">
<div style="margin-bottom: 2px" class="smallfont">代码:</div><pre style="border-bottom: 1px inset; border-left: 1px inset; padding-bottom: 6px; margin: 0px; padding-left: 6px; width: 470px; padding-right: 6px; height: 402px; overflow: auto; border-top: 1px inset; border-right: 1px inset; padding-top: 6px" class="alt2"><div style="text-align: left" dir="ltr">&lt;HTML&gt; 
&lt;HEAD&gt; 
&lt;TITLE&gt; Test Page &lt;/TITLE&gt; 
&lt;script src="prototype-1.4.0.js"&gt;&lt;/script&gt; 
&lt;script language="javascript"&gt; 
function show(){ 
        window.frames["iframe_text"].document.getElementById("myH1").innerHTML 
= "http://www.pint.com"; 

} 
&lt;/script&gt; 
&lt;/HEAD&gt; 
&lt;BODY&gt; 
&lt;iframe height="350"  width="600" src="iframe_text.htm" 
name="iframe_text"&gt;&lt;/iframe&gt; 
&lt;form action="" method="post"&gt; 
&lt;input name="haha" id="haha" type="text" maxlength="30" value="haha" 
/&gt;&lt;br /&gt; 
&lt;textarea cols="50" rows="5" id="getAttributeMethod"&gt;&lt;/textarea&gt; 
&lt;input type="button" onClick="show();" value="提交"/&gt; 
&lt;/form&gt; 
&lt;h1 id="myH1"&gt;d&lt;/h1&gt; 
&lt;/BODY&gt; 
&lt;/HTML&gt; </div></pre></div><br />frame_test.htm <br />
<div style="margin: 5px 20px 20px">
<div style="margin-bottom: 2px" class="smallfont">代码:</div><pre style="border-bottom: 1px inset; border-left: 1px inset; padding-bottom: 6px; margin: 0px; padding-left: 6px; width: 470px; padding-right: 6px; height: 450px; overflow: auto; border-top: 1px inset; border-right: 1px inset; padding-top: 6px" class="alt2"><div style="text-align: left" dir="ltr">&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; 
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt; 
&lt;head&gt; 
&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312" /&gt; 
&lt;title&gt;无标题文档&lt;/title&gt; 
&lt;/head&gt; 
&lt;script language="javascript"&gt; 
function show(){ 
        parent.document.getElementById("myH1").innerHTML = 
"http://www.adsf.com"; 


} 


&lt;/script&gt; 
&lt;body&gt; 
&lt;h1 id="myH1"&gt;ha&lt;/h1&gt; 
&lt;form action="" method="post"&gt; 
&lt;input name="abc" id="abc" type="text" maxlength="30" value="abc" /&gt;&lt;br 
/&gt; 
&lt;textarea cols="50" rows="10" id="text"&gt;&lt;/textarea&gt; &lt;br /&gt; 
&lt;input type="button" value="提交" onclick="show();"/&gt; 
&lt;/form&gt; 
&lt;/body&gt; 
&lt;/html&gt; </div></pre></div><img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1658215.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/28/1658215.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/28/1658215.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>https://imo.im/</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657924.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Wed, 27 Jan 2010 14:40:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657924.html</guid><description><![CDATA[<p>阅读: 24 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2010-01-27 22:40 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657924.html" target="_blank">原文链接</a></p>https://imo.im/<img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1657924.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657924.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657924.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>ASP.NET的编译方法(转，复习一下)</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657257.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Wed, 27 Jan 2010 02:04:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657257.html</guid><description><![CDATA[<p>阅读: 33 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2010-01-27 10:04 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657257.html" target="_blank">原文链接</a></p><div>
<p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt" align="left"><font face="Calibri">ASP.NET</font><span style="font-family: 宋体">的编译方法<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><strong><span style="font-family: 宋体">第一种：默认编译</span></strong></p>
<p style="text-align: left; text-indent: 21pt; margin: 0cm 0cm 0pt" align="left"><span style="font-family: 宋体">默认编译就意味着无需对</span><font face="Calibri">ASP.NET</font><span style="font-family: 宋体">应用程序执行任何手动编译。在这种情况下</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET </span><span style="font-family: 宋体">运行库将在</span><span style="font-family: 'Verdana','sans-serif'">Web</span><span style="font-family: 宋体">浏览器首次请求应用程序中的页时编译</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">应用程序，随后服务器将编译后的结果存储到</span><span style="font-family: 'Verdana','sans-serif'">%SystemRoot%"Microsoft.NET"Framework"version"Temporary ASP.NET Files</span><span style="font-family: 宋体">文件夹下的特殊文件夹中，随后的请求只实例化此文件夹中已经创建的</span><span style="font-family: 'Verdana','sans-serif'">DLL</span><span style="font-family: 宋体">，该</span><span style="font-family: 'Verdana','sans-serif'">DLL</span><span style="font-family: 宋体">发送响应请求。如果对应用程序中的文件进行了更改，则在下次请求页时，</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET </span><span style="font-family: 宋体">运行库将确定已更改的文件的依赖项，并且仅重新编译受更改影响的文件。</span></p>
<p style="text-align: left; text-indent: 31.3pt; margin: 0cm 0cm 0pt" align="left"><strong><span style="font-family: 宋体">优点：</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.5pt 3.75pt 87.3pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">简单易用。部署网站时，只须将写好的网站源码复制到</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">服务器上就行，</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET </span><span style="font-family: 宋体">编译器会为您完成所有工作。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 11.25pt 0pt 87.3pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">当预编译网站所需的额外步骤减慢了开发过程时，默认编译是开发过程中可供选择的最佳编译模型。</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 7.5pt 3.75pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp; <strong>&nbsp;</strong></span><strong><span style="line-height: 140%; font-family: 宋体">缺点：</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 93pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">首次请求网站时可能会有很大延迟。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 93pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">要就将源代码文件放在</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">服务器上。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 93pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">3、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">对服务器上的网站目录拥有文件系统访问权限的任何人都可以获取源代码和</span><span style="font-family: 'Verdana','sans-serif'"> UI </span><span style="font-family: 宋体">代码。</span></p>
<p style="text-align: left; text-indent: 10.5pt; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 宋体; color: red">疑问：</span></strong></p>
<p style="text-align: left; text-indent: 10.55pt; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><strong><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong><span style="font-family: 宋体">在郝刚老师的《</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET2.0</span><span style="font-family: 宋体">开发指南》第三章，第三节：编译和运行应用程序中这样写到&#8220;</span><span style="font-family: 宋体">默认情况下，用户首次请求资源（例如本例中的</span><font face="Calibri">Default.aspx</font><span style="font-family: 宋体">）时，</span><span style="font-family: 宋体">将动态编译</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="font-family: 宋体">页面（</span><font face="Calibri">Default.aspx</font><span style="font-family: 宋体">）和代码隐藏文件（</span><font face="Calibri">Default.aspx.cs</font><span style="font-family: 宋体">）。在第一次编译页和代码文件之后，服务器将自动缓存编译后的结果，这样将大大提高随后对同一页提出的请求的效率&#8221;，我理解的上面这段话的意思是：用户首次请求页面</span><span style="font-family: 'Verdana','sans-serif'">a</span><span style="font-family: 宋体">，服务器编译页面</span><span style="font-family: 'Verdana','sans-serif'">a</span><span style="font-family: 宋体">，而不会编译页面</span><span style="font-family: 'Verdana','sans-serif'">b</span><span style="font-family: 宋体">。这时只有页面</span><span style="font-family: 'Verdana','sans-serif'">a</span><span style="font-family: 宋体">的请求效率得到了提高，随后用户首次请求页面</span><span style="font-family: 'Verdana','sans-serif'">b</span><span style="font-family: 宋体">，服务器才编译页面</span><span style="font-family: 'Verdana','sans-serif'">b</span><span style="font-family: 宋体">，这样页面</span><span style="font-family: 'Verdana','sans-serif'">b</span><span style="font-family: 宋体">的请求效率才得到提高。而微软</span><span style="font-family: 'Verdana','sans-serif'">msdn</span><span style="font-family: 宋体">网页上说的是&#8220;首次请求时编译</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">应用程序&#8221;。这点我感觉郝刚老师写错了，几次试验的结果都证明是首次请求网页就会编译整个</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">应用程序。</span><strong><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></strong></p>
<p style="text-align: left; text-indent: 20.65pt; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><strong><span style="font-family: 宋体">第二种：就地预编译</span></strong></p>
<p style="text-align: left; text-indent: -10.5pt; margin: 0cm 7.35pt 3.75pt 21pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;</span><span style="font-family: 宋体">我感觉就地预编译就是手动完成了在默认预编译中的浏览器首次请求的功能，也就是用下面的命令来代替首次请求触发编译，它和默认编译的差别很小，唯一的进步就是缩短了首次请求的延迟。我们可以使用</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="font-family: 宋体">的编译工具（</span><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler.exe</span><span style="font-family: 宋体">）就地预编译</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">程序，这将编译所有的</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="font-family: 宋体">文件类，而其他文件，如</span><span style="font-family: 'Verdana','sans-serif'">html</span><span style="font-family: 宋体">文件、图形和非</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="font-family: 宋体">静态文件将保持原状。该编译工具调用</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="font-family: 宋体">运行库编译网站，其逻辑形式与用户首次请求页时相同。在编译过程中，编译器将为所有可执行输出创建程序集，并将程序集存在</span><span style="font-family: 'Verdana','sans-serif'">%SystemRoot%"Microsoft.NET"Framework"version"Temporary ASP.NET Files</span><span style="font-family: 宋体">文件夹下的特殊文件夹中，随后</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="font-family: 宋体">将用此文件夹中的程序集来完成页面的请求。如果对应用程序中的文件进行了更改，可以使用</span><span style="font-family: 'Verdana','sans-serif'"> ASP.NET </span><span style="font-family: 宋体">编译工具重新编译受影响的文件，也可以不管它，在下次向应用程序请求页时重新编译受影响的文件。</span></p>
<p style="text-align: left; text-indent: -10.5pt; margin: 0cm 7.35pt 3.75pt 21pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 宋体">编译方法：</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">浏览到</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">站点的根目录，添加特定的程序处理</span><span style="font-family: 'Verdana','sans-serif'">precompile.axd</span><span style="font-family: 宋体">，然后随便浏览一个页面，将页面名称改为</span><span style="font-family: 'Verdana','sans-serif'"> precompile.axd&nbsp;</span><span style="font-family: 宋体">这样我们得到一个消息说&#8220;编译已经完成&#8221;。注：这种方法我至今没有实现，看到网上一片文章说&#8220;</span><span style="font-family: 'Verdana','sans-serif'">precompile.axd</span><span style="font-family: 宋体">和</span><span style="font-family: 'Verdana','sans-serif'">webadmin.axd</span><span style="font-family: 宋体">在</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET2.0</span><span style="font-family: 宋体">的</span><span style="font-family: 'Verdana','sans-serif'">beta2</span><span style="font-family: 宋体">中已经不存在&#8221;。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">可以选用下面的命令实现</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 宋体">定到</span><span style="font-family: 'Verdana','sans-serif'">%SystemRoot%"Microsoft.NET"Framework"version"</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 宋体">运行</span></p>
<p style="text-align: left; text-indent: 15.75pt; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler&nbsp;-v /virtualpath</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</span><span style="font-family: 'Verdana','sans-serif'; font-size: 7.5pt">&nbsp;</span><span style="font-family: 宋体; font-size: 7.5pt">注：</span><em><span style="font-family: 'Verdana','sans-serif'; font-size: 7.5pt">virtualPath</span></em><span style="font-family: 宋体; font-size: 7.5pt">参数指示网站的</span><span style="font-family: 'Verdana','sans-serif'; font-size: 7.5pt"> Internet </span><span style="font-family: 宋体; font-size: 7.5pt">信息服务</span><span style="font-family: 'Verdana','sans-serif'; font-size: 7.5pt"> (IIS) </span><span style="font-family: 宋体; font-size: 7.5pt">虚拟路径</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp; aspnet_compiler &#8211;p physicalorrelativepath &#8211;v /</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="font-family: 宋体; font-size: 7.5pt">注：在这种情况下，</span><em><span style="font-family: 'Verdana','sans-serif'; font-size: 7.5pt">physicalOrRelativePath</span></em><span style="font-family: 宋体; font-size: 7.5pt">参数是指网站文件所在的完全限定目录路径，或者相对于当前目录的路径。</span><span style="font-family: 'Verdana','sans-serif'; font-size: 7.5pt">-V</span><span style="font-family: 宋体; font-size: 7.5pt">指定要编译的应用程序的虚拟目录，如果也使用了</span><span style="font-family: 'Verdana','sans-serif'; font-size: 7.5pt">-p</span><span style="font-family: 宋体; font-size: 7.5pt">参数，就使用物理路径查找应用程序的目录</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 109.5pt; vertical-align: top" align="left"><span style="font-family: 宋体">用上面的方法编译后就可以在上面提到的目录里找到编译后的程序集。</span></p>
<p style="text-align: left; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 宋体">优点：</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 108.05pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">缩短了网站首次请求时的响应时间</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 108.05pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">无需特出步骤，将代码复制到</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">服务器上，运行命令就行。修改文件后，可以重新编译也可以不管。</span></p>
<p style="text-align: left; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 宋体">缺点</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 108.75pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">要将源代码部署在</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">服务器上。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 108.75pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">对网站上的目录拥有访问权限的任何人都可以获得源代码和</span><span style="font-family: 'Verdana','sans-serif'">UI</span><span style="font-family: 宋体">代码。</span></p>
<p style="text-align: left; text-indent: 20.25pt; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><strong><span style="font-family: 宋体">第三种：可更新</span></strong><strong><span style="font-family: 'Verdana','sans-serif'">UI</span></strong><strong><span style="font-family: 宋体">完全预编译</span></strong></p>
<p style="text-align: left; text-indent: 20.25pt; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><span style="font-family: 宋体">通过</span><span style="font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="font-family: 宋体">编译工具（</span><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler.exe</span><span style="font-family: 宋体">）的</span><span style="font-family: 'Verdana','sans-serif'">-u</span><span style="font-family: 宋体">开关，</span><span style="font-family: 宋体">可以将源代码（</span><span style="font-family: 'Verdana','sans-serif'">.cs </span><span style="font-family: 宋体">和</span><span style="font-family: 'Verdana','sans-serif'">/</span><span style="font-family: 宋体">或</span><span style="font-family: 'Verdana','sans-serif'"> .vb </span><span style="font-family: 宋体">文件以及</span><span style="font-family: 'Verdana','sans-serif'"> .resource </span><span style="font-family: 宋体">文件）编译为</span><span style="font-family: 'Verdana','sans-serif'"> DLL </span><span style="font-family: 宋体">并保留</span><span style="font-family: 'Verdana','sans-serif'"> .aspx </span><span style="font-family: 宋体">文件中的</span><span style="font-family: 'Verdana','sans-serif'"> UI </span><span style="font-family: 宋体">标记以供更新。所有的</span><span style="font-family: 'Verdana','sans-serif'">DLL</span><span style="font-family: 宋体">都被保存在</span><span style="font-family: 'Verdana','sans-serif'">bin</span><span style="font-family: 宋体">文件夹里，这样我们可以对网页进行有限的更新，例如：可以更改控件的颜色、字体和其他外观元素，而不用重新编译应用程序。但是如果我们改变了后台代码则需要重新编译。</span></p>
<p style="text-align: left; text-indent: 20.25pt; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;</span><strong><span style="font-family: 宋体">编译方法：</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 93pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">用</span><span style="font-family: 'Verdana','sans-serif'">visual studio2005 </span><span style="font-family: 宋体">打开</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">应用程序，在工具栏里找到&#8220;生成&#8221;</span><span style="font-family: 'Verdana','sans-serif'">-&gt;</span><span style="font-family: 宋体">&#8220;发布网站&#8221;，在&#8220;发布网站&#8221;界面上选择&#8220;允许更新此预编译站点&#8221;，确定后可以在目标位置，找到编译后的</span><span style="font-family: 'Verdana','sans-serif'">web</span><span style="font-family: 宋体">应用程序。我们看到所有的</span><span style="font-family: 'Verdana','sans-serif'">cs</span><span style="font-family: 宋体">文件都不见了，在</span><span style="font-family: 'Verdana','sans-serif'">bin</span><span style="font-family: 宋体">文件夹里出现了很多</span><span style="font-family: 'Verdana','sans-serif'">DLL</span><span style="font-family: 宋体">文件。随便打开一个页面文件，里面的</span><span style="font-family: 'Verdana','sans-serif'">UI</span><span style="font-family: 宋体">代码并没有变化，我们可以随意修改里面的代码而不用重新编译程序。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 93pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">运行命令</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 93pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler -p physicalOrRelativePath -v / targetPath-u</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 93pt; vertical-align: top" align="left"><strong><span style="font-family: 宋体; font-size: 8.5pt">注：</span></strong><strong><span style="font-family: 'Verdana','sans-serif'; font-size: 8.5pt">-u</span></strong><span style="font-family: 宋体; font-size: 8.5pt">开关（此开关表示您想编译站点以进行部署和更新）</span></p>
<p style="text-align: left; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp; <strong>&nbsp;</strong></span><strong><span style="font-family: 宋体">优点：</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 87.75pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">缩短了网站首次请求时的响应时间。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 87.75pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">用户界面开发人员无需重新编译整个网站即可修改网站的外观和行为。</span></p>
<p style="text-align: left; line-height: 140%; text-indent: -36pt; margin: 0cm 11.25pt 0pt 87.75pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">3、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="line-height: 140%; font-family: 宋体">保护应用程序源代码中包含的知识产权，以防止被对网站目录拥有文件系统访问权限的任何人意外看到。</span></p>
<p style="text-align: left; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="font-family: 宋体">缺点：</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 82.5pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">在部署到成品服务器之前，需要执行单独的编译步骤。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 82.5pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">对网站目录拥有访问权限的任何人都可以获取应用程序</span><span style="font-family: 'Verdana','sans-serif'"> UI </span><span style="font-family: 宋体">代码（</span><span style="font-family: 'Verdana','sans-serif'">.aspx </span><span style="font-family: 宋体">文件）中包含的知识产权。</span></p>
<p style="text-align: left; line-height: 140%; text-indent: -36pt; margin: 0cm 11.25pt 0pt 82.5pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">3、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="line-height: 140%; font-family: 宋体">多个页不能引用同一</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"><strong>CodeFile</strong></span><span style="line-height: 140%; font-family: 宋体">类。</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;</span><strong><span style="line-height: 140%; font-family: 宋体">第四种：不可更新</span></strong><strong><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">UI</span></strong><strong><span style="line-height: 140%; font-family: 宋体">的预编译</span></strong></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><strong><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;</span></strong><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;</span><span style="line-height: 140%; font-family: 宋体">当使用不可更新</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">UI</span><span style="line-height: 140%; font-family: 宋体">的预编译时，</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="line-height: 140%; font-family: 宋体">编译工具将正常情况下运行时编译的所有</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">ASP.NET</span><span style="line-height: 140%; font-family: 宋体">源文件编译为程序集，其中包括页中的程序代码、</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">.cs</span><span style="line-height: 140%; font-family: 宋体">和</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">.vb</span><span style="line-height: 140%; font-family: 宋体">类文件以及其它代码文件和资源文件，但是每个页面并不单独编译为一个程序集。编译器将从输出中移除所有的源代码和</span><span style="line-height: 140%; font-family: 宋体">标记。在生成的布局中，为每个</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">.aspx</span><span style="line-height: 140%; font-family: 宋体">文件生成编译后的文件（扩展名为</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">.compiled</span><span style="line-height: 140%; font-family: 宋体">），该文件包含指向该页面程序集的指针。如果需要更改网站（包括页面布局），那么必须更改原始文件，并重新编译站点。唯一例外的是站点配置文件</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">web.config</span><span style="line-height: 140%; font-family: 宋体">。我们可以更改服务器上的</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">web.config</span><span style="line-height: 140%; font-family: 宋体">文件而不需要重新编译。</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp; <strong>&nbsp;</strong></span><strong><span style="line-height: 140%; font-family: 宋体">编译方法：</span></strong></p>
<p style="text-align: left; text-indent: 31.5pt; margin: 0cm 7.35pt 3.75pt 0cm; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler -p physicalOrRelativePath -v / targetPath </span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="line-height: 140%; font-family: 宋体; font-size: 7.5pt">注：这里没有开关</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'; font-size: 7.5pt">-u</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><strong><span style="line-height: 140%; font-family: 宋体">优点：</span></strong></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 11.35pt 0pt 93pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">缩短了网站首次请求的响应时间</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 11.35pt 0pt 93pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 宋体">保护应用程序源代码和</span><span style="font-family: 'Verdana','sans-serif'"> UI </span><span style="font-family: 宋体">代码中包含的知识产权，以防止被对网站目录拥有访问权限的任何人意外看到。</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;&nbsp; <strong>&nbsp;&nbsp;</strong></span><strong><span style="line-height: 140%; font-family: 宋体">缺点：</span></strong></p>
<p style="text-align: left; line-height: 140%; text-indent: -36pt; margin: 0cm 11.25pt 0pt 108.75pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="line-height: 140%; font-family: 宋体">在部署到成品服务器以前需要单独的编译步骤。</span></p>
<p style="text-align: left; line-height: 140%; text-indent: -36pt; margin: 0cm 11.25pt 0pt 108.75pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="line-height: 140%; font-family: 宋体">对网站的代码（包括</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">UI</span><span style="line-height: 140%; font-family: 宋体">代码）进行很小的改动就要重新编译整个网站。</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;</span><strong><span style="line-height: 140%; font-family: 宋体">&nbsp;</span></strong><strong><span style="line-height: 140%; font-family: 宋体">第五种：编译为固定名称的程序集</span></strong></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">&nbsp;&nbsp; </span><span style="line-height: 140%; font-family: 宋体">在以上四种编译方法的编译工程中，编译器生成的程序集使用随机名，每次重新编译程序程序集的名称都会变。由于程序集的名会便，所以维护一个程序集就必须重新部署整个程序。使用ASP.NET编译工具的-fixednames开关，或者在visual studio 2005中的发布发布网站时选择&#8220;使用固定命名和单页程序集&#8221;，就会为程序中的每个页分别创建一个程序集，而其名称该页面的虚拟路径，如果虚拟路径长度超过windows文件命名允许的长度则使用路径的哈希值。顶层目录（app_code）中的文件编译为单个程序集。</span><span style="line-height: 140%; font-family: 宋体">程序集的名称在后续编译时不会更改，因此可以创建只替换已更改的程序集的应用程序</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"> Service Release</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">&nbsp;<strong>&nbsp;</strong></span><strong><span style="line-height: 140%; font-family: 宋体">编译方法：</span></strong></p>
<p style="text-align: left; line-height: 140%; text-indent: -18pt; margin: 0cm 11.25pt 0pt 80.25pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">1、</span><span style="line-height: 140%; font-family: 宋体">在Visual Studio 2005中发布网站的时候选择&#8220;使用固定命名和单页程序集&#8221;。</span></p>
<p style="text-align: left; text-indent: -18pt; margin: 0cm 7.35pt 3.75pt 80.25pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、</span><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler&nbsp;-v virtualpath targetpath &#8211;fixednames</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 80.25pt; vertical-align: top" align="left"><span style="font-family: 宋体">或</span><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler &#8211;p physicalorrelativepath &#8211;v / targetpath &#8211;fixednames</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">&nbsp;<strong>&nbsp;</strong></span><strong><span style="line-height: 140%; font-family: 宋体">优点：</span></strong></p>
<p style="text-align: left; line-height: 140%; text-indent: -18pt; margin: 0cm 11.25pt 0pt 69.75pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">1、</span><span style="line-height: 140%; font-family: 宋体">缩短网站请求时的响应时间。</span></p>
<p style="text-align: left; line-height: 140%; text-indent: -18pt; margin: 0cm 11.25pt 0pt 69.75pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">2、</span><span style="line-height: 140%; font-family: 宋体">每个程序集的名称不会随着多次编译而更改，因而无需重新部署整个应用程序即可以替换特定的程序集。</span></p>
<p style="text-align: left; line-height: 140%; text-indent: -18pt; margin: 0cm 11.25pt 0pt 69.75pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">3、</span><span style="line-height: 140%; font-family: 宋体">对应用程序的次要更新可能更具有针对性。</span></p>
<p style="text-align: left; line-height: 140%; text-indent: 20.25pt; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><strong><span style="line-height: 140%; font-family: 宋体">缺点：</span></strong></p>
<p style="text-align: left; line-height: 140%; text-indent: -36pt; margin: 0cm 11.25pt 0pt 87.75pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="line-height: 140%; font-family: 宋体">在部署到成品服务器以前需要单独的编译步骤。</span></p>
<p style="text-align: left; line-height: 140%; text-indent: -36pt; margin: 0cm 11.25pt 0pt 87.75pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="line-height: 140%; font-family: 宋体">需要分别为应用程序中的每个页创建一个程序集。这可能会为包含许多页的站点创建大量程序集。</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;<strong>&nbsp;&nbsp;</strong></span><strong><span style="line-height: 140%; font-family: 宋体">第六种：预编译为签名的程序集</span></strong></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;&nbsp;</span><span style="line-height: 140%; font-family: 宋体">可以使用</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"> ASP.NET </span><span style="line-height: 140%; font-family: 宋体">编译工具创建可部署到服务器的全局程序集缓存</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"> (GAC) </span><span style="line-height: 140%; font-family: 宋体">或应用程序的</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"> Bin </span><span style="line-height: 140%; font-family: 宋体">目录中的具有强名称的程序集。使用签名的程序集使得恶意用户更难用恶意代码替换应用程序的程序集。</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;&nbsp; </span><span style="line-height: 140%; font-family: 宋体">每当使用</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"><strong>-keyfile</strong></span><span style="line-height: 140%; font-family: 宋体">或</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"><strong>-keycontainer</strong></span><span style="line-height: 140%; font-family: 宋体">开关为程序集签名时，还必须使用</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"><strong>-aptca</strong></span><span style="line-height: 140%; font-family: 宋体">开关指定将</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">allowpartiallytrustedcallersattribute</span><span style="line-height: 140%; font-family: 宋体">属性应用于程序集。如果不指定</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"><strong>-aptca</strong></span><span style="line-height: 140%; font-family: 宋体">开关，程序集就不能由</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"> ASP.NET </span><span style="line-height: 140%; font-family: 宋体">进程调用，并且</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"> Aspnet_compiler.exe </span><span style="line-height: 140%; font-family: 宋体">将引发异常。</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;&nbsp; </span><strong><span style="line-height: 140%; font-family: 宋体">编译方法：</span></strong></p>
<p style="text-align: left; line-height: 140%; text-indent: -36pt; margin: 0cm 11.25pt 0pt 78pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">1、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="line-height: 140%; font-family: 宋体">用</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">visual studio2005</span><span style="line-height: 140%; font-family: 宋体">发布网站的时候选择&#8220;对预编译程序集启用强命名&#8221;，并填好秘钥文件。</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 78pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">2、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler&nbsp;-v virtualpath targetpath &#8211;keyfile &#8211;keyfile.snk -aptca</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 78pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">如果使用秘钥容器则使用下列命令</span></p>
<p style="text-align: left; text-indent: 0cm; margin: 0cm 7.35pt 3.75pt 78pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler&nbsp;-v virtualpath targetpath &#8211;keycontainer &#8211;keycontainer.snk -aptca<br /></span><span style="line-height: 140%; font-size: 10.5pt"><font face="宋体">如果您的网站不是</font></span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'; font-size: 10.5pt"> IIS </span><span style="line-height: 140%; font-size: 10.5pt"><font face="宋体">应用程序，并因此在</font></span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'; font-size: 10.5pt"> IIS </span><font face="宋体"><span style="line-height: 140%; font-size: 10.5pt">元数据库中没有项，则在命令提示符处键入以下内容。</span></font></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 78pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">3、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler&nbsp;-p physicalorrelativepath &#8211;v / targetpath &#8211;keyfile &#8211;keyfile.snk -aptca</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 78pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 宋体">如果使用秘钥容器则使用下列命令</span></p>
<p style="text-align: left; text-indent: -36pt; margin: 0cm 7.35pt 3.75pt 78pt; vertical-align: top" align="left"><span style="font-family: 'Verdana','sans-serif'">4、<span style="font: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: 'Verdana','sans-serif'">aspnet_compiler&nbsp;-p physicalorrelativepath &#8211;v / targetpath &#8211;keycontainer &#8211;keycontainer.snk -aptca</span></p>
<p style="text-align: left; line-height: 140%; margin: 0cm 11.25pt 0pt 0cm; vertical-align: top" align="left"><strong><span style="line-height: 140%; font-family: 宋体">优点：</span></strong></p>
<p style="text-align: left; line-height: 140%; text-indent: -18pt; margin: 0cm 7.5pt 3.75pt 60.55pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">1、</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">&nbsp;</span><span style="line-height: 140%; font-family: 宋体">共享开发环境中的密钥管理可能很复杂。</span></p>
<p style="text-align: left; line-height: 140%; text-indent: -18pt; margin: 0cm 7.5pt 3.75pt 60.55pt; vertical-align: top" align="left"><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">2、</span><span style="line-height: 140%; font-family: 宋体">程序集必须让</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'"> ASP.NET </span><span style="line-height: 140%; font-family: 宋体">运行库</span><span style="line-height: 140%; font-family: 'Verdana','sans-serif'">allowpartiallytrustedcallersattribute</span><span style="line-height: 140%; font-family: 宋体">属性</span></p></div> <img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1657257.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657257.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/27/1657257.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Content-Disposition的使用和注意事项（转）</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/21/1653318.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 21 Jan 2010 06:02:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/21/1653318.html</guid><description><![CDATA[<p>阅读: 79 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2010-01-21 14:02 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/21/1653318.html" target="_blank">原文链接</a></p><span style="line-height: 19px; font-family: Tahoma; font-size: 13px">&nbsp; 
<p>&nbsp;</p>
<p>我们在开发web系统时有时会有以下需求：</p>
<ul><li>希望某类或者某已知MIME 类型的文件（比如：*.gif;*.txt;*.htm）能够在访问时弹出&#8220;文件下载&#8221;对话框</li><li>希望以原始文件名（上传时的文件名,例如：山东省政府1024号文件.doc）提供下载，但服务器上保存的地址却是其他文件名（如：12519810948091234_asdf.doc)</li><li>希望某文件直接在浏览器上显示而不是弹出文件下载对话框<br /></li></ul>近日在使用Content-disposition的使用出现UTF-8识别不了的情况，经过HttpUtility.UrlEncode(fileName,Encoding.UTF8)编码后的文件名称直接显示给用户了，如图：<br /><img alt="" src="http://images.cnblogs.com/cnblogs_com/fredlau/error.jpg" width="400" height="243" /><br />名称为uft 8格式，但是ie6.0却识别不了，很是不解，以前曾经使用此种方法是可行的，只好利用Google了，经查找网络里大多为像Qihangnet写的这篇文章似的，我也贴出来供大家使用。<br />Qihangnet的这篇文章跟我的想法基本是相似的，在<br /><span style="font-family: 'courier new'; white-space: pre; font-size: 11px">HttpContext.Current.Response.AddHeader(<span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="background-color: yellow" class="searchword">Content-Disposition</span>"</span>, <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="background-color: yellow" class="searchword">attachment</span>; filename=\""</span> <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">+</span> UTF_FileName(filename) <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">+</span> <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="color: red">.doc</span>\";"</span>); </span>中<span style="color: red">.doc的后缀名是关键，我在没有写.doc或.txt之类的后缀时，依旧跟上图一样，加上后缀后utf 8格式的字符串自动识别成汉字了</span>，至于为什么我还不是很清楚，贴出来让大家也注意一下就是了。<br /><br />//------------------------------------------start-------------------------------------------------------------------<br /><br />作者：Qihangnet&nbsp;<br />出处：<a href="http://www.qihangnet.com/PermaLink,guid,db65d50a-ba90-4229-a3a2-71b4f1b407b9.aspx" target="_blank"><font color="#6466b3">http://www.qihangnet.com/PermaLink,guid,db65d50a-ba90-4229-a3a2-71b4f1b407b9.aspx</font></a><br /><br />
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp; 要解决上述需求就可以使用<span style="background-color: yellow" class="searchword">Content-disposition</span>来解决。第一个需求的解决办法是</p>
<div style="background-color: #ffffff; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: small" class="csharpcode"><pre style="background-color: #ffffff; margin: 0em; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: small"><span style="background-color: transparent; font-family: 'courier new'; color: black; font-size: 11px">Response.AddHeader <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="background-color: yellow" class="searchword">content-disposition</span>"</span>,<span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="background-color: yellow" class="searchword">attachment</span>; filename=fname.ext"</span></span></pre></div>
<div style="background-color: #ffffff; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: small" class="csharpcode">&nbsp;</div>
<div style="background-color: #ffffff; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: small" class="csharpcode">将上述需求进行归我给出如下例子代码：</div>
<div style="background-color: #ffffff; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: small" class="csharpcode"><pre style="background-color: #ffffff; margin: 0em; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: small"><span style="background-color: transparent; font-family: 'courier new'; color: black; font-size: 11px"><span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">public</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">static</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">void</span> ToDownload(<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">string</span> serverfilpath,<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">string</span> filename)
{
FileStream fileStream <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">=</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">new</span> FileStream(serverfilpath, FileMode.Open);
<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">long</span> fileSize <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">=</span> fileStream.Length;
HttpContext.Current.Response.ContentType <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">=</span> <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"application/octet-stream"</span>;
HttpContext.Current.Response.AddHeader(<span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="background-color: yellow" class="searchword">Content-Disposition</span>"</span>, <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="background-color: yellow" class="searchword">attachment</span>; filename=\""</span> <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">+</span> UTF_FileName(filename) <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">+</span> <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="color: red">.doc</span>\";"</span>);
<span style="background-color: transparent; font-family: 'courier new'; color: green; font-size: 11px">////<span style="background-color: yellow" class="searchword">attachment</span> --- 作为附件下载</span>
<span style="background-color: transparent; font-family: 'courier new'; color: green; font-size: 11px">////inline --- 在线打开</span>
HttpContext.Current.Response.AddHeader(<span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"Content-Length"</span>, fileSize.ToString());
<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">byte</span>[] fileBuffer <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">=</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">new</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">byte</span>[fileSize];
fileStream.Read(fileBuffer, 0, (<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">int</span>)fileSize);
HttpContext.Current.Response.BinaryWrite(fileBuffer);
fileStream.Close();
HttpContext.Current.Response.End();
}
<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">public</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">static</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">void</span> ToOpen(<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">string</span> serverfilpath, <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">string</span> filename)
{
FileStream fileStream <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">=</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">new</span> FileStream(serverfilpath, FileMode.Open);
<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">long</span> fileSize <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">=</span> fileStream.Length;
HttpContext.Current.Response.ContentType <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">=</span> <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"application/octet-stream"</span>;
HttpContext.Current.Response.AddHeader(<span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="background-color: yellow" class="searchword">Content-Disposition</span>"</span>, <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"inline; filename=\""</span> <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">+</span> UTF_FileName(filename) <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">+</span> <span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"<span style="color: #ff0000">.doc<span style="color: #000000"><span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">\";"</span>);</span></span></span></span></pre><pre style="background-color: #ffffff; margin: 0em; font-family: consolas, 'Courier New', courier, monospace; color: black; font-size: small"><span style="background-color: transparent; font-family: 'courier new'; color: black; font-size: 11px">    HttpContext.Current.Response.AddHeader(<span style="background-color: #e4e4e4; font-family: 'courier new'; color: #666666; font-size: 11px">"Content-Length"</span>, fileSize.ToString());
<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">byte</span>[] fileBuffer <span style="background-color: transparent; font-family: 'courier new'; color: red; font-size: 11px">=</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">new</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">byte</span>[fileSize];
fileStream.Read(fileBuffer, 0, (<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">int</span>)fileSize);
HttpContext.Current.Response.BinaryWrite(fileBuffer);
fileStream.Close();
HttpContext.Current.Response.End();
}
<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">private</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">static</span> <span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">string</span> UTF_FileName(<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">string</span> filename)
{
<span style="background-color: transparent; font-family: 'courier new'; color: blue; font-size: 11px">return</span> HttpUtility.UrlEncode(filename, System.Text.Encoding.UTF8);
}</span></pre></div>
<p>&nbsp;</p>
<p>简单的对上述代码做一下解析，ToDownload方法为将一个服务器上的文件（serverfilpath为服务器上的物理地址），以某文件名(filename)在浏览器上弹出&#8220;文件下载&#8221;对话框，而ToOpen是将服务器上的某文件以某文件名在浏览器中显示/打开的。注意其中我使用了UTF_FileName方法，该方法很简单，主要为了解决包含非英文/数字名称的问题，比如说文件名为&#8220;衣明志.doc&#8221;，使用该方法客户端就不会出现乱码了。<br />//*---------------------------end----------------------------------<br /><br />园子里liping13599168的下载函数也不错，顺便也贴一下：<br />出处：<a href="http://www.cnblogs.com/liping13599168/archive/2008/07/31/672025.html" target="_blank"><font color="#6466b3">http://www.cnblogs.com/liping13599168/archive/2008/07/31/672025.html</font></a><br /></p>
<div class="cnblogs_code"><font color="#6466b3"><img style="display: none" id="Code_Closed_Image_173721" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_173721').style.display='none'; document.getElementById('Code_Open_Image_173721').style.display='inline'; document.getElementById('Code_Open_Text_173721').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" height="16"><img style="display: inline" id="Code_Open_Image_173721" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_173721').style.display='none'; getElementById('Code_Closed_Image_173721').style.display='inline'; getElementById('Code_Closed_Text_173721').style.display='inline';" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" height="16"></font><span style="display: none" id="Code_Closed_Text_173721" class="cnblogs_code_Collapse">文件下载函数</span><span style="display: inline" id="Code_Open_Text_173721"><br /><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
--><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;System.Threading;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="_Request"&gt;</span><span style="color: #008000">读取客户端在&nbsp;Web&nbsp;请求期间发送的&nbsp;HTTP&nbsp;值</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="_Response"&gt;</span><span style="color: #008000">封装来自&nbsp;ASP.NET&nbsp;操作的&nbsp;HTTP&nbsp;响应信息</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="_fileName"&gt;</span><span style="color: #008000">目的文件名称</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="_fullPath"&gt;</span><span style="color: #008000">源文件路径</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="_speed"&gt;&lt;/param&gt;</span><span style="color: #008000"><br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;returns&gt;</span><span style="color: #008000">是否成功</span><span style="color: #808080">&lt;/returns&gt;</span><span style="color: #808080"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;ResponseFile(HttpRequest&nbsp;_Request,&nbsp;HttpResponse&nbsp;_Response,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;_fileName,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;_fullPath,&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;_speed)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileStream&nbsp;myFile&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;FileStream(_fullPath,&nbsp;FileMode.Open,&nbsp;FileAccess.Read,&nbsp;FileShare.ReadWrite);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BinaryReader&nbsp;br&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;BinaryReader(myFile);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Response.AddHeader(</span><span style="color: #800000">"</span><span style="color: #800000">Accept-Ranges</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">bytes</span><span style="color: #800000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Response.Buffer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;fileLength&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;myFile.Length;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">long</span><span style="color: #000000">&nbsp;startBytes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">double</span><span style="color: #000000">&nbsp;pack&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">10240</span><span style="color: #000000">;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">10K&nbsp;bytes<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">int&nbsp;sleep&nbsp;=&nbsp;200;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">每秒5次&nbsp;&nbsp;&nbsp;即5*10K&nbsp;bytes每秒</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;sleep&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)Math.Floor(</span><span style="color: #800080">1000</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;pack&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;_speed)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(_Request.Headers[</span><span style="color: #800000">"</span><span style="color: #800000">Range</span><span style="color: #800000">"</span><span style="color: #000000">]&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Response.StatusCode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">206</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">[]&nbsp;range&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;_Request.Headers[</span><span style="color: #800000">"</span><span style="color: #800000">Range</span><span style="color: #800000">"</span><span style="color: #000000">].Split(</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[]&nbsp;{&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">=</span><span style="color: #800000">'</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">'</span><span style="color: #800000">-</span><span style="color: #800000">'</span><span style="color: #000000">&nbsp;});<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;startBytes&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;Convert.ToInt64(range[</span><span style="color: #800080">1</span><span style="color: #000000">]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Response.AddHeader(</span><span style="color: #800000">"</span><span style="color: #800000">Content-Length</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;(fileLength&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;startBytes).ToString());<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(startBytes&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">Response.AddHeader("Content-Range",&nbsp;string.Format("&nbsp;bytes&nbsp;{0}-{1}/{2}",&nbsp;startBytes,&nbsp;fileLength-1,&nbsp;fileLength));</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Response.AddHeader(</span><span style="color: #800000">"</span><span style="color: #800000">Connection</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">Keep-Alive</span><span style="color: #800000">"</span><span style="color: #000000">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Response.ContentType&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">application/octet-stream</span><span style="color: #800000">"</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Response.AppendHeader(</span><span style="color: #800000">"</span><span style="color: #800000">Content-Disposition</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">attachment;&nbsp;filename=\</span><span style="color: #800000">""</span><span style="color: #800000">&nbsp;+&nbsp;HttpUtility.UrlEncode(_fileName,&nbsp;System.Text.Encoding.UTF8)&nbsp;+&nbsp;</span><span style="color: #800000">"</span><span style="color: #000000">.txt\</span><span style="color: #800000">"</span><span style="color: #800000">;</span><span style="color: #800000">"</span><span style="color: #000000">);<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;br.BaseStream.Seek(startBytes,&nbsp;SeekOrigin.Begin);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;maxCount&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">)Math.Floor((fileLength&nbsp;</span><span style="color: #000000">-</span><span style="color: #000000">&nbsp;startBytes)&nbsp;</span><span style="color: #000000">/</span><span style="color: #000000">&nbsp;pack)&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">1</span><span style="color: #000000">;<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #800080">0</span><span style="color: #000000">;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;maxCount;&nbsp;i</span><span style="color: #000000">++</span><span style="color: #000000">)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(_Response.IsClientConnected)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_Response.BinaryWrite(br.ReadBytes(</span><span style="color: #0000ff">int</span><span style="color: #000000">.Parse(pack.ToString())));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(sleep);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;maxCount;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">finally</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;br.Close();<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myFile.Close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000"><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br />}<br /><br /></span><span style="color: #008000">//</span><span style="color: #008000">调用方法</span><span style="color: #008000"><br /></span><span style="color: #000000">Page.Response.Clear();<br /></span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;success&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ResponseFile(Page.Request,&nbsp;Page.Response,&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">目的文件名称</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800000">@"</span><span style="color: #800000">源文件路径</span><span style="color: #800000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">1024000</span><span style="color: #000000">);<br /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">!</span><span style="color: #000000">success)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(</span><span style="color: #800000">"</span><span style="color: #800000">下载文件出错！</span><span style="color: #800000">"</span><span style="color: #000000">);<br />Page.Response.End();</span></span></div></span><img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1653318.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/21/1653318.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2010/01/21/1653318.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>2009</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1637221.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 31 Dec 2009 15:36:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1637221.html</guid><description><![CDATA[<p>阅读: 26 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2009-12-31 23:36 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1637221.html" target="_blank">原文链接</a></p><p>　　想写一下2009年的个人总结，当写的时候才发现 ，今年做的事很少，基本在辗转奔波</p>
<p>&nbsp;</p>
<p>　　2008年的经济危机，到了2009年4月份，所在公司终于支持不下去了，我也从大连来到了北京一家娱乐游戏公司，做运营中心的技术经理，和运营开发部的部门经理，期间投入了大量的精力组件部门，没想到3个月后风云突变，公司因为内部斗争，竟然被另外的分公司吞并，我的上司运营总监也黯然离职，我也就离开了(三个月的努力，10多人的团队已经不错了，唉)，离职后又去了一个做GIS的公司做项目经理，又是三个月，这次因为我和公司的试用效果并不理想，又离职了，然后又到了目前这个做ERP的公司，流水帐似的记事，流水帐似的奔波。</p>
<p>　　希望在新的一年里自己可以稳定下来，做一些喜欢做的事，祝自己幸福吧，语无伦次。</p><img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1637221.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1637221.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1637221.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>C#中的二维数组（拾遗）</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1636673.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Thu, 31 Dec 2009 03:23:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1636673.html</guid><description><![CDATA[<p>阅读: 30 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2009-12-31 11:23 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1636673.html" target="_blank">原文链接</a></p><p>因为.net中的datatable是有列名的二维数组，所以用起来比较方便，而且支持的方法也较多，所以一直没有用过C#中的二维数组</p>
<p>今天用了一下，发现实例都不会写了，哈哈</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; String[,] sss=new String[3,2];//3行两列</p>
<p>&nbsp;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (int i = 0; i &lt; 3; i++)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sss[i, 0] = i.ToString()+"0";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sss[i, 1] = i.ToString()+"1";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>用</p>
<p>for (int i = 0; i &lt; sss.GetLongLength(0); i++)//循环行数</p>
<p>{</p>
<p>sss[i, 0];</p>
<p>sss[i, 1];</p>
<p>}</p>
<p>写一下语法而已</p><img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1636673.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1636673.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/31/1636673.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>在地址栏调试js（小技巧）</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631856.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 25 Dec 2009 01:59:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631856.html</guid><description><![CDATA[<p>阅读: 32 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2009-12-25 09:59 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631856.html" target="_blank">原文链接</a></p><p>还真才学到</p>
<p>javascript:eval('debugger;Myfunction()')</p>
<p>javascript:alert(eval('debugger;Myfunction()'))</p><img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1631856.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631856.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631856.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>鼠标右键较卡的解决办法</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631810.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Fri, 25 Dec 2009 01:00:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631810.html</guid><description><![CDATA[<p>阅读: 53 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2009-12-25 09:00 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631810.html" target="_blank">原文链接</a></p><p>inter集成显卡鼠标右键比较卡，需要卸载一些服务，把下面代码复制到记事本，后缀名变为.cmd执行就行了</p>
<p>&nbsp;</p>
<p>PAUSE</p>
<p>regsvr32 /u /s igfxpph.dll<br />reg delete HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers /f<br />reg add HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\new /ve /d {D969A300-E7FF-11d0-A93B-00A0C90F2719}<br />reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v HotKeysCmds /f<br />reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v IgfxTray /f<br /></p><img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1631810.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631810.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/25/1631810.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>动态生成一个继承接口的类</title><link>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/16/1625888.html</link><dc:creator>宏宇</dc:creator><author>宏宇</author><pubDate>Wed, 16 Dec 2009 10:15:00 GMT</pubDate><guid>http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/16/1625888.html</guid><description><![CDATA[<p>阅读: 54 评论: 0 作者: <a href="http://www.cnblogs.com/cuihongyu3503319/" target="_blank">宏宇</a> 发表于 2009-12-16 18:15 <a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/16/1625888.html" target="_blank">原文链接</a></p><p>接口：</p>
<p>namespace LibertyPortal.Main.IDAL<br />{<br />&nbsp;&nbsp;&nbsp; public interface Interface1<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; void www();<br />&nbsp;&nbsp;&nbsp; }<br />}&nbsp;&nbsp;&nbsp; </p>
<p>调用</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Assembly assembly = NewAssembly();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Interface1 www = assembly.CreateInstance("xml.tables.Test1") as Interface1;</p>
<p>方法</p>
<p>public static Assembly NewAssembly()<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;&nbsp;&nbsp; string wzcxzww = asm.Location;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //创建编译器实例。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CSharpCodeProvider provider = new CSharpCodeProvider();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //设置编译参数。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CompilerParameters paras = new CompilerParameters();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paras.GenerateExecutable = false;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paras.GenerateInMemory = true;</p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string wwasw= System.Web.HttpContext.Current.Server.MapPath("Bin");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paras.ReferencedAssemblies.Add(wwasw+"<a href="http://www.cnblogs.com/cuihongyu3503319/admin/file://libertyportal.main.idal.dll%22);//" target="_blank">http://www.cnblogs.com/cuihongyu3503319/admin/file://libertyportal.main.idal.dll%22);//</a>要真实地址<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; paras.ReferencedAssemblies.Add("System.dll");//全局的不用</p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CodeCompileUnit m_CodeCompileUnit;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CodeNamespace m_CodeNameSpace;//命名空间<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CodeTypeDeclaration m_Class;//类<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_CodeCompileUnit = new CodeCompileUnit();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_CodeNameSpace = new CodeNamespace("xml.tables");<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_CodeCompileUnit.Namespaces.Add(m_CodeNameSpace);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_Class = new CodeTypeDeclaration("Test1");//类名为Test1<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_Class.IsClass = true;//是类</p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //产生www方法<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CodeTypeReference voidReference = new CodeTypeReference("System.void");//方法无返回值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CodeMemberMethod Test = new CodeMemberMethod();//方法<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test.ReturnType = voidReference;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test.Name = "www";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Test.Attributes = MemberAttributes.Public | MemberAttributes.Final;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //CodeVariableReferenceExpression m_AddFlagExpression = new CodeVariableReferenceExpression("m_AddFlag");</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //CodeAssignStatement assignAddTrue = new CodeAssignStatement(m_AddFlagExpression, new CodePrimitiveExpression(true));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Test.Statements.Add(assignAddTrue);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_Class.Members.Add(Test);</p>
<p>&nbsp;</p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //m_Class.BaseTypes.Add(new CodeTypeReference(typeof(Object)));<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_Class.BaseTypes.Add(new CodeTypeReference(typeof(Interface1)));//类父亲<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_CodeNameSpace.Types.Add(m_Class);</p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #region 输出生成源代码<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ICodeGenerator g = provider.CreateGenerator();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; g.GenerateCodeFromType(m_Class,System.Web.HttpContext.Current.Response.Output , null);&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #endregion</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CompilerResults result = provider.CompileAssemblyFromDom(paras, m_CodeCompileUnit);//编译</p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (result.Errors.Count &gt; 0)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 显示编译错误信息。&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; string www = "";<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (CompilerError ce in result.Errors)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; www += ce.ToString();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Debug.WriteLine();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; System.Web.HttpContext.Current.Response.Write(www);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return null;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Debug.WriteLine(result.PathToAssembly);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //编译代码。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //CompilerResults result = provider.CompileAssemblyFromSource(paras, classSource.ToString());</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //获取编译后的程序集。<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Assembly assembly = result.CompiledAssembly;</p>
<p><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return assembly;<br />&nbsp;&nbsp;&nbsp; }</p><img src="http://www.cnblogs.com/cuihongyu3503319/aggbug/1625888.html?type=1" width="1" height="1" alt=""/><p>评论: 0　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/16/1625888.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/cuihongyu3503319/archive/2009/12/16/1625888.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56798/" target="_blank">现场直播：Google 社会化产品 Google Buzz 发布会</a><span style="color:gray">(2010-02-10 09:01)</span><br/>· <a href="http://news.cnblogs.com/n/56797/" target="_blank">阿里巴巴3月推1688网络批发 胡戈韩寒出力宣传</a><span style="color:gray">(2010-02-10 08:48)</span><br/>· <a href="http://news.cnblogs.com/n/56796/" target="_blank">第一代互联网拓荒者再掀连环创业潮</a><span style="color:gray">(2010-02-10 08:47)</span><br/>· <a href="http://news.cnblogs.com/n/56795/" target="_blank">雅虎将永久性关闭科技站点Yahoo! Tech</a><span style="color:gray">(2010-02-10 08:45)</span><br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>