Web Service代理类生成工具
本文原文连接:http://www.cnblogs.com/dengxinglin/p/3334158.html
之前一篇文章写 Web Service服务代理类生成及编译 , 通过命令行的方式可以直接把SOAP的Webservice服务生成代理类,再编译成一个dll
需求
既然上面可以生成了代理类,并且如果我有几个WebService需要生成,或者多次要生成代理类编译dll的,这样就会很麻烦了。把这生成代理类和编译成dll的做成一个工具就会带来方便。
开始行动
先直接上效果图片

第一步:
把需要到的两个工具:wsdl.exe和csc.exe工具给单独复制出来
第二步:
通过C#来代码来执行那两个命令行工具下面是我的一个方法:
/// <summary>
/// 输入参数执行命令的方法
/// </summary>
/// <param name="argument"></param>
/// <returns></returns>
public string Startcmd(string argument)
{
string output = "";
try
{
Process cmd = new Process();
cmd.StartInfo.FileName = FileName;
cmd.StartInfo.Arguments = argument;
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
cmd.Start();
output = cmd.StandardOutput.ReadToEnd();
//Console.WriteLine(output);
cmd.WaitForExit();
cmd.Close();
}
catch (Exception e)
{
output = e.ToString();
return output;
// Console.WriteLine(e);
}
return output;
}
第三步:
调试。在wsdl工具生成代理一般都没有问题,也能正常生成代理类;但是用csc编译成dll的时候,运行csc工具会有错误,我们需要引用一个cscompui.dll,安装vs后可以直接找到的。还需要把代理中引用的程序集都填写上,也包括是系统的程序集。一般会包括下面的命名空间引用
using System.Xml.Serialization;
using System.Web.Services;
using System.ComponentModel;
using System.Web.Services.Protocols;
using System;
using System.Diagnostics;
using System.Data;
System.Xml.Serialization 是在System.XML.dll程序集
System.Web.Services 程序集是System.Web.Services.dll
using System.Diagnostics;using System.ComponentModel;using System;程序集都在System.dll
System.Data的程序集是System.Data.dll
我把那四个程序集的framework3.5的单独复制出来的;
你如果是要修改成4.0:
一:可以自己找到4.0下面相应的dll去替换掉,
二:先把这个项目修改成framework4.0的项目,之后在程序中References-->System.Data--》properties-->Copy local的属性值给为true,就到复制出framework4.0的版本dll,


如果csc编译有错误:根据返回的错误代码可以参考http://msdn.microsoft.com/zh-cn/library/ms228296.aspx,都可以找到原因的。
上传速度太慢,在博客园上传不了,上传到了百度网盘:百度网盘下载
备注: 由于wsdl生成的代理类和方法大都是公共的,如果两个不同的WebService,生成使用了相同的命名空间,则在csc编译的时候会有错误,这只能去手动解决或者那两个生成的代码放在不同的命名空间了。
本文原文连接:http://www.cnblogs.com/dengxinglin/p/3334158.html
Web Service代理类生成工具的更多相关文章
- Web Serveice服务代理类生成及编译
本文链接地址:http://www.cnblogs.com/dengxinglin/p/3334158.html 一.生成代理类 对于web service服务和wcf的webservice服务,我们 ...
- 【干货分享】C# 实体类生成工具
前言: 项目实战中不论是业务编码还是通用编码,总会归纳出一些通用的工具类.放入项目中一劳永逸,让兄弟姐妹们避免编写重复代码.所以利用了工作之余的时间,将这些散落在多个项目中精致优雅的工具类,归纳起来形 ...
- c# 实体类生成工具
一个简单生成c#实体类的工具 源代码下载
- Spring Aop中,获取被代理类的工具
在实际应用中,顺着过去就是一个类被代理.反过来,可能需要逆向进行,拿到被代理的类,实际工作中碰到了,就拿出来分享下. /** * 获取被代理类的Object * @author Monkey */ p ...
- C#实体类生成工具(onlymodel)
最近刚从常用数据库Mysql转到SqlServer,深陷于没有实体生成工具的痛苦,尝试过动软,但生成的字段类型和数据库的有些不对应.以及网上的一些实体生成工具,但要么操作太过繁琐,要么效果不如人意,所 ...
- 用node.js给C#写一个数据表的实体类生成工具
虽然微软提供了T4模板,但是我感觉非常难用.哪儿比得上直接用脚本来写模板来的爽. 因为要给一个老项目做周边的工具,需要连接到数据库. 我习惯性用EntityFrameworkCore来做,因为毕竟从出 ...
- .net webservices 代理类生成命令
wsdl.exe /l:cs /out:d:/WxPayment.cs http://localhost/WxPayment.asmx
- .NET基础拾遗(7)Web Service的开发与应用基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基 ...
- [转]WinForm如何调用Web Service
1.建立项目WebService和WinForm项目,这里起名为WinFormInvokeWebService,如图所示, 2.Service1.asmx代码为:(这部分其实和上篇的代码是一样的) u ...
随机推荐
- 【转】Spring MVC中Session的正确用法之我见
Spring MVC是个非常优秀的框架,其优秀之处继承自Spring本身依赖注入(Dependency Injection)的强大的模块化和可配置性,其设计处处透露着易用性.可复用性与易集成性.优良的 ...
- Topology and Geometry in OpenCascade-Edge
Topology and Geometry in OpenCascade-Edge eryar@163.com 摘要Abstract:本文简要介绍了几何造型中的边界表示法(BRep),并结合程序说明O ...
- WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping。请添加一个名为 jquery (区分大小写)的 ScriptResourceMapping。
WebForms UnobtrusiveValidationMode 需要“jquery”ScriptResourceMapping.请添加一个名为 jquery (区分大小写)的 ScriptRes ...
- 了解HTML表单之input元素的30个元素属性
目录 传统属性 name type accept alt checked disabled readonly maxlength size src value 新增属性 autocomplete au ...
- 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用
在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap开发框架的一些基础性概括,包括总体界面效果,以及布局.菜单等内容, ...
- MemCache在win7上的可视化配置以及Nodejs/Net应用
惯例科普:MemCache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的.需要频繁访问数据库的 ...
- 使用ZeroClipboard解决跨浏览器复制到剪贴板的问题
Zero Clipboard的实现原理Zero Clipboard 利用透明的Flash让其漂浮在复制按钮之上,这样其实点击的不是按钮而是 Flash ,这样将需要的内容传入Flash,再通过Flas ...
- Dijkstra算法(二)之 C++详解
本章是迪杰斯特拉算法的C++实现. 目录 1. 迪杰斯特拉算法介绍 2. 迪杰斯特拉算法图解 3. 迪杰斯特拉算法的代码说明 4. 迪杰斯特拉算法的源码 转载请注明出处:http://www.cnbl ...
- HTML5在移动端开发的12大特性
1.离线缓存为HTML5开发移动应用提供了基础 HTML5 Web Storage API可以看做是加强版的cookie,不受数据大小限制,有更好的弹性以及架构,可以将数据写入到本机的ROM中,还可以 ...
- Oracle ASM diskgroup在主机重启后启动失败
环境:RHEL 6.4 + Oracle 11.2.0.3 + ASM单实例 1.重启主机后,+DATA diskgroup启动不成功,现象如下: [grid@JY-DB ~]$ crsctl sta ...