Wpf Wpf缺少服务但有Iservice

时间:2014-09-17 11:32:32

标签: c# wpf wcf

WCF文件。

namespace DatabaseTransferViaWcf
{
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        int generateId();
    }
}

相应的文件。

namespace DatabaseTransferViaWcf
{
     public class Service1 : IService1
     {
         public int generateId()
         {
             return 5700 ;
         }
    }
}

我将它们添加到我的WPF项目中作为名为“SendRecieveData”的服务引用。

我是如何尝试使用它的。

public partial class Transfer : Window
{
    private void button9_Click(object sender, RoutedEventArgs e)
    {
        ServiceHost host = null; 
        try
        {
            using (ServiceHost host = new ServiceHost(typeof(SendRecieveData.Service1)))
            {
                host.Open();
                Console.WriteLine("The service is ready.");
                Console.WriteLine("Press <enter /> to terminate service.");
                Console.ReadLine();
            }
            wcfHostId = wcf.generateId();
            textBox5.Text = "" + wcfHostId;
        }
        catch (Exception ex)
        {

            MessageBox.Show("Error = " + ex.Message);
        } 

    }
}

它说我缺少对Service1的引用,但我查看过的所有教程和博客都没有更多的步骤。

2 个答案:

答案 0 :(得分:0)

WPF应用程序是您服务的客户端,因此您不应使用ServiceHost类。如果要在应用程序中托管服务,则使用它。这不是你的情况。在您的情况下,您应该使用在向项目添加服务引用时自动生成的代理。

答案 1 :(得分:0)

您的服务参考未正确添加。尝试删除它,并确保将其命名为Service1而不是Service1Service或类似名称。

编辑: 尝试像

这样的东西
Service1Client service1Client = new service1Client();
Console.WriteLine(service1Client.generateId());

通常是如何命名服务。