使用Svcutil.exe创建可用的代理类

时间:2014-10-21 06:53:39

标签: .net svcutil.exe csc

我试图使用svcutil.exe来创建代理类。代理应该在.dll中,以便我可以添加引用'库到另一个项目并使用它。以下是我目前的代码。

        ProcessStartInfo start = new ProcessStartInfo();
        start.Arguments = "/out:C:\\Temp\\myProxyClass.cs http://www.w3schools.com/webservices/tempconvert.asmx?WSDL";
        start.FileName = "C:\\Temp\\SvcUtil.lnk";
        start.WindowStyle = ProcessWindowStyle.Hidden;
        start.CreateNoWindow = true;

        using (Process proc = Process.Start(start))
        {
            proc.WaitForExit();
        }

        ProcessStartInfo start1 = new ProcessStartInfo();
        start1.Arguments = "/target:library /out:C:\\Temp\\XXX.dll C:\\Temp\\myProxyClass.cs";
        start1.FileName = "C:\\Temp\\csc.lnk";
        start1.WindowStyle = ProcessWindowStyle.Hidden;
        start1.CreateNoWindow = true;

        using (Process proc1 = Process.Start(start1))
        {
            proc1.WaitForExit();
        }

如上所示,我首先使用svcutil.exe生成cs文件,然后使用csc.exe将其编译为dll。当我在另一个项目中添加它作为参考并尝试运行它时,我收到了一个错误。

错误1类型' System.ServiceModel.ClientBase`1'在未引用的程序集中定义。您必须添加对程序集的引用,System.ServiceModel,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'。 C:\ Users \ ABC \ My Work \ AA-Private \ Test \ Test \ Program.cs 13 13测试

1 个答案:

答案 0 :(得分:0)

错误消息告诉您需要执行的操作。要添加代理dll的项目也必须在其中引用System.ServiceModel。