仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 585|回复: 8
打印 上一主题 下一主题

[学习教程] ASP.NET网页设计静态挪用Webservice

[复制链接]
小女巫 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:28:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
语言是不是不是最重要的?web|静态///<summary>
///依据指定的信息,挪用远程WebService办法
///</summary>
///<paramname="url">WebService的http情势的地点</param>
///<paramname="namespace">欲挪用的WebService的定名空间</param>
///<paramname="classname">欲挪用的WebService的类名(不包含定名空间前缀)</param>
///<paramname="methodname">欲挪用的WebService的办法名</param>
///<paramname="args">参数列表</param>
///<returns>WebService的实行了局</returns>
///<remarks>
///假如挪用失利,将会抛出Exception。请挪用的时分,得当截获非常。
///非常信息大概会产生在两个中央:
///1、静态机关WebService的时分,CompileAssembly失利。
///2、WebService自己实行失利。
///</remarks>
///<example>
///<code>
///objectobj=InvokeWebservice("http://localhost/GSP_WorkflowWebservice/common.asmx","Genersoft.Platform.Service.Workflow","Common","GetToolType",newobject[]{"1"});
///</code>
///</example>
privateobjectInvokeWebservice(stringurl,string@namespace,stringclassname,stringmethodname,object[]args)
{
try
{
System.Net.WebClientwc=newSystem.Net.WebClient();
System.IO.Streamstream=wc.OpenRead(url+"?WSDL");
System.Web.Services.Description.ServiceDescriptionsd=System.Web.Services.Description.ServiceDescription.Read(stream);
System.Web.Services.Description.ServiceDescriptionImportersdi=newSystem.Web.Services.Description.ServiceDescriptionImporter();
sdi.AddServiceDescription(sd,"","");
System.CodeDom.CodeNamespacecn=newSystem.CodeDom.CodeNamespace(@namespace);
System.CodeDom.CodeCompileUnitccu=newSystem.CodeDom.CodeCompileUnit();
ccu.Namespaces.Add(cn);
sdi.Import(cn,ccu);

Microsoft.CSharp.CSharpCodeProvidercsc=newMicrosoft.CSharp.CSharpCodeProvider();
System.CodeDom.Compiler.ICodeCompilericc=csc.CreateCompiler();

System.CodeDom.Compiler.CompilerParameterscplist=newSystem.CodeDom.Compiler.CompilerParameters();
cplist.GenerateExecutable=false;
cplist.GenerateInMemory=true;
cplist.ReferencedAssemblies.Add("System.dll");
cplist.ReferencedAssemblies.Add("System.XML.dll");
cplist.ReferencedAssemblies.Add("System.Web.Services.dll");
cplist.ReferencedAssemblies.Add("System.Data.dll");

System.CodeDom.Compiler.CompilerResultscr=icc.CompileAssemblyFromDom(cplist,ccu);
if(true==cr.Errors.HasErrors)
{
System.Text.StringBuildersb=newSystem.Text.StringBuilder();
foreach(System.CodeDom.Compiler.CompilerErrorceincr.Errors)
{
sb.Append(ce.ToString());
sb.Append(System.Environment.NewLine);
}
thrownewException(sb.ToString());
}
System.Reflection.Assemblyassembly=cr.CompiledAssembly;
Typet=assembly.GetType(@namespace+"."+classname,true,true);
objectobj=Activator.CreateInstance(t);
System.Reflection.MethodInfomi=t.GetMethod(methodname);
returnmi.Invoke(obj,args);
}
catch(Exceptionex)
{
thrownewException(ex.InnerException.Message,newException(ex.InnerException.StackTrace));
}
}

我见过java运行在手机上,包括很廉价的山寨手机,但是却暂时没发现.net在手机上有什么作为。wp7可能是个转机,但是按照《Java的跨平台就是一句谎言。那.net的跨平台也当之无愧是一句谎言。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-19 14:14:27 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
莫相离 该用户已被删除
板凳
发表于 2015-1-24 19:38:01 | 只看该作者
通过这次激烈的讨论,我从大家身上学到了太多,开阔了眼界,不管是支持我的还是骂我的,都感谢你们。
金色的骷髅 该用户已被删除
地板
发表于 2015-2-2 12:44:58 | 只看该作者
由于JSP/Servlet都是基于Java的,所以它们也有Java语言的最大优点——平台无关性,也就是所谓的“一次编写,随处运行(WORA–WriteOnce,RunAnywhere)”。除了这个优点,JSP/Servlet的效率以及安全性也是相当惊人的。
透明 该用户已被删除
5#
发表于 2015-2-7 20:03:34 | 只看该作者
比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。
admin 该用户已被删除
6#
发表于 2015-2-23 09:49:52 | 只看该作者
PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。
谁可相欹 该用户已被删除
7#
发表于 2015-3-7 07:43:28 | 只看该作者
由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。
再见西城 该用户已被删除
8#
发表于 2015-3-14 15:24:42 | 只看该作者
有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。
爱飞 该用户已被删除
9#
发表于 2015-3-21 11:28:40 | 只看该作者
HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-11 00:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表