首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请大家帮忙解释上代码

2012-08-08 
请大家帮忙解释下代码C# codetry{System.Net.WebClient wc new System.Net.WebClient()System.IO.Strea

请大家帮忙解释下代码

C# code
try            {                System.Net.WebClient wc = new System.Net.WebClient();                System.IO.Stream stream = wc.OpenRead(url + "?WSDL");                System.Web.Services.Description.ServiceDescription sd = System.Web.Services.Description.ServiceDescription.Read(stream);                System.Web.Services.Description.ServiceDescriptionImporter sdi = new System.Web.Services.Description.ServiceDescriptionImporter();                sdi.AddServiceDescription(sd, "", "");                System.CodeDom.CodeNamespace cn = new System.CodeDom.CodeNamespace(@namespace);                System.CodeDom.CodeCompileUnit ccu = new System.CodeDom.CodeCompileUnit();                ccu.Namespaces.Add(cn);                sdi.Import(cn, ccu);                Microsoft.CSharp.CSharpCodeProvider csc = new Microsoft.CSharp.CSharpCodeProvider();                System.CodeDom.Compiler.ICodeCompiler icc = csc.CreateCompiler();                System.CodeDom.Compiler.CompilerParameters cplist = new System.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.CompilerResults cr = icc.CompileAssemblyFromDom(cplist, ccu);                if (true == cr.Errors.HasErrors)                {                    System.Text.StringBuilder sb = new System.Text.StringBuilder();                    foreach (System.CodeDom.Compiler.CompilerError ce in cr.Errors)                    {                        sb.Append(ce.ToString());                        sb.Append(System.Environment.NewLine);                    }                    throw new Exception(sb.ToString());                }                System.Reflection.Assembly assembly = cr.CompiledAssembly;                Type t = assembly.GetType(@namespace + "." + classname, true, true);                object obj = Activator.CreateInstance(t);                System.Reflection.MethodInfo mi = t.GetMethod(methodname);                return mi.Invoke(obj, args);            }            catch (Exception ex)            {                throw ex;            }


谁可以帮我解释下,这段代码是什么意思?
如果出错的话,可能什么地方会有问题?

[解决办法]
应该是动态生成一个WebService的代理DLL吧。
[解决办法]
下载WSDL代理类,动态编译成程序集,并调用其中的方法

报错要看是什么错,也许是动态编译的错误,也可能是反射调用的错误。。。。

一切皆有可能。。。。。

热点排行