如何从同一WPF应用程序托管的WCF服务调用WPF应用程序中的方法?

时间:2014-06-19 22:25:24

标签: wpf wcf

我已经创建了一个托管在WPF应用程序中的WCF服务。一切正常。我的客户可以毫无问题地访问WCF服务。

现在,当客户端调用我的服务中的方法时,例如:SetData(MyDataObject数据),我希望该方法将“data”对象发送回WPF主机进行处理。

我如何连接???

我的服务托管在WPF App:

host = new ServiceHost(typeof(WCFTestService.Service1), new Uri("http://localhost:8733/WCFTestService/"));

// Service host is opened on the UI thread
host.AddServiceEndpoint(typeof(WCFTestService.IService1), new BasicHttpBinding(), "");

// Enable metadata exchange
ServiceMetadataBehavior smb = new ServiceMetadataBehavior() { HttpGetEnabled = true };
host.Description.Behaviors.Add(smb);

// Enable exeption details
ServiceDebugBehavior sdb = host.Description.Behaviors.Find<ServiceDebugBehavior>();
sdb.IncludeExceptionDetailInFaults = true;

host.Open();

我的WCF服务方法:

public bool SetData(MyDataObject data)
{
   //HOW DO I get MyDataObject to the WPF Host???
   // something like: host.UpdateData(data) <-- callback method???
   return true;
}

1 个答案:

答案 0 :(得分:0)

我对这个问题不屑一顾,但是有一个特殊的原因,表示层和服务层是如此紧密耦合的?我认为你可以将MyDataObject的内容添加到你创建的数据传输对象中,或者保持MyDataObject(可能是暂时的),然后让WPF应用程序/主机通过同一个wcf服务公开的方法调用来访问它。我可能会用你提供的数据这样做。