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的引用,但我查看过的所有教程和博客都没有更多的步骤。
答案 0 :(得分:0)
WPF应用程序是您服务的客户端,因此您不应使用ServiceHost
类。如果要在应用程序中托管服务,则使用它。这不是你的情况。在您的情况下,您应该使用在向项目添加服务引用时自动生成的代理。
答案 1 :(得分:0)
您的服务参考未正确添加。尝试删除它,并确保将其命名为Service1而不是Service1Service或类似名称。
编辑: 尝试像
这样的东西Service1Client service1Client = new service1Client();
Console.WriteLine(service1Client.generateId());
通常是如何命名服务。