小女巫 发表于 2015-1-16 22:28:50

ASP.NET网页设计静态挪用Webservice

语言是不是不是最重要的?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的效率以及安全性也是相当惊人的。

透明 发表于 2015-2-7 20:03:34

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。

admin 发表于 2015-2-23 09:49:52

PHP的源代码完全公开,在OpenSource意识抬头的今天,它更是这方面的中流砥柱。不断地有新的函数库加入,以及不停地更新,使得PHP无论在UNIX或是Win32的平台上都可以有更多新的功能。它提供丰富的函数,使得在程式设计方面有着更好的资源。目前PHP的最新版本为4.1.1,它可以在Win32以及UNIX/Linux等几乎所有的平台上良好工作。PHP在4.0版后使用了全新的Zend引擎,其在最佳化之后的效率,比较传统CGI或者ASP等技术有了更好的表现。

谁可相欹 发表于 2015-3-7 07:43:28

由于CGI程序每响应一个客户就会打开一个新的进程,所以,当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,这样就加重了服务器的负担,使服务器的执行效率变得越来越低下。

再见西城 发表于 2015-3-14 15:24:42

有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。

爱飞 发表于 2015-3-21 11:28:40

HTML:当然这是网页最基本的语言,每一个服务器语言都需要它的支持,要学习,这个肯定是开始,不说了.
页: [1]
查看完整版本: ASP.NET网页设计静态挪用Webservice