2015-03-30 8 views
0

Я новичок в разработке C#, так как первая задача, которую я получил с помощью службы WCF, и попробовал некоторые образцы в проекте кода. Теперь я работаю со сложными типами, но не могу получить ответ. из файла wsdl и xsd с помощью svcutil.exe wsdlname xsd и получил два файла на основе этих файлов, созданных одной службой на локальном компьютере и пытающихся использовать их ниже.Как использовать службу WCF

Ниже Интерфейс

Я могу запустить эту услугу в состоянии видеть URL службы и возможность ссылаться на моем клиенте.

Ниже я пытаюсь вызвать службу от клиента к этой заглушке, но не в состоянии получить представление, как позвонить

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();    
      } 
     } 
    } 

Но при попытке вызова службы я не получаю никакого отказа put для конструктора по умолчанию. попробовал с console.writeline();

Я пытаюсь позвонить по адресу sendMessageResponse1 sendMessage (запрос sendMessageRequest); от обслуживания.

получение ошибки ниже при попытке вызова вышеуказанного метода. Ошибка 1 не удается преобразовать тип «ConsoleApplication3.ServiceReference1.sendMessageResponse1» до «» ConsoleApplication3.ServiceReference1.sendMessageResponse

+1

Мы действительно не должны видеть весь код. Вы могли бы немного сузить проблему. См. [Как использовать веб-службу] (https://johnwsaunders3.wordpress.com/2009/05/17/how-to-consume-a-web-service/). –

+0

Не могли бы вы исправить код в своем вопросе в соответствующих частях?Вы должны быть в состоянии, по крайней мере, сузить, где проблема. – MattD

+0

@MattD: во время потребления я не получаю ответ, выделен жирным шрифтом, спасибо – Chiranjeevi

ответ

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; 

Следующая строка кода будет ломаться, потому что не преобразование между классом sendMessageRequest и sendMessageRequest1.

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

Вот сделка:

  • s1 имеет тип sendMessageResponse1.
  • Ваша попытка бросить его в тип sendMessageResponse.
  • Это не сработает, потому что первое не является производным от последнего.

Это именно то, что ошибка говорит вам:

Ошибка 1 не удается преобразовать тип 'ConsoleApplication3.ServiceReference1.sendMessageResponse1' в '' ConsoleApplication3.ServiceReference1.sendMessageResponse

+0

@ Luttin: пытаясь с множеством опций по ошибке, наконец, я разместил этот код. на самом деле нужно вызвать этот метод: сбив с толку, что нужно передать параметру, и о типе возврата этого метода, не могли бы вы мне помочь sendMessageResponse1 sendMessage (запрос sendMessageRequest); – Chiranjeevi

+0

@ Чирандживи Боюсь, у меня просто не хватило времени, чтобы оказать дальнейшую помощь. У меня новая работа. –

+0

@ Luttin: нет проблем, я тоже пытаюсь с моей стороны, если их преуспел, опубликует здесь. – Chiranjeevi

Смежные вопросы