如何使用WCF服务

时间:2015-03-30 16:52:54

标签: c# asp.net wcf

我是C#开发的新手,作为我分配了WCF服务的第一项任务,并在代码项目中尝试了一些示例。 现在我正在使用复杂类型,但无法得到响应。 从wsdl文件和xsd使用svcutil.exe wsdlname xsd获取两个基于这些文件的文件在本地创建一个服务并尝试以下面的方式使用。

以下是界面

我能够运行此服务,能够查看服务网址并能够在我的客户端中进行推介。

下面是我试图将服务从客户端调用到此存根,但无法得到想法,如何调用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.ServiceModel;

    namespace ConsoleApplication3
    {
        class Program
        {
            static void Main(string[] args)
            {
                 ServiceReference1.sendMessageResponse1 s = new
ServiceReference1.sendMessageResponse1();
                 ServiceReference1.sendMessageResponse1 s1 = new ServiceReference1.sendMessageResponse1();
                 //s1.messageid = 1;
                 //s1.recipient = "Chiranjeevi";
                 //s1.status = "Sent";
                 //ServiceReference1.sendMessageResponse ss= (ServiceReference1.sendMessageResponse) s1;
                 Console.Read();            
             }
        }
    }

但是在尝试调用服务时,我也没有为默认构造函数提供任何输出。尝试使用console.writeline();

我想打电话给 sendMessageResponse1 sendMessage(sendMessageRequest request);来自服务。

在尝试调用上述方法时得到以下错误。 错误1无法转换类型' ConsoleApplication3.ServiceReference1.sendMessageResponse1' to' ConsoleApplication3.ServiceReference1.sendMessageResponse'

2 个答案:

答案 0 :(得分:1)

嗯,您正在尝试将一个类的实例转换为另一个类的实例。

ServiceReference1.sendMessageResponse1 s = 
    new ServiceReference1.sendMessageResponse1();
ServiceReference1.sendMessageResponse1 s1 = 
    new ServiceReference1.sendMessageResponse1();

//s1.messageid = 1;
//s1.recipient = "Chiranjeevi";
//s1.status = "Sent";
//ServiceReference1.sendMessageResponse ss=
//    (ServiceReference1.sendMessageResponse) s1;

以下代码行将会中断,因为类sendMessageRequestsendMessageRequest1之间没有转换。

ServiceReference1.sendMessageResponse ss=
    (ServiceReference1.sendMessageResponse) s1;

这是交易:

  • s1的类型为sendMessageResponse1
  • 您尝试将其转换为sendMessageResponse类型。
  • 这不会起作用,因为前者不是来自后者。

这正是错误告诉你的:

  

错误1无法将类型'ConsoleApplication3.ServiceReference1.sendMessageResponse1'转换为'ConsoleApplication3.ServiceReference1.sendMessageResponse'

答案 1 :(得分:0)

经过大量的谷歌搜索获得了以下网址,这是最好的初学者,直接进入项目而没有WCF的知识。 最佳起点文章。

https://www.packtpub.com/books/content/implementing-wcf-service-real-world