我创建了一个WCF服务应用程序。在Service1.svc
中有几种方法。从客户端调用WCF方法c#
这里是我的IService1.cs
[OperationContract]
GetUserDetailsByEmail_Result GetUserDetailsByEmail(string email);
这里是我的Service.svc.cs
public class Service1 : IService1
{
#region GetUserDetails
public GetUserDetailsByEmail_Result GetUserDetailsByEmail(string email)
{
return (new UserManager()).GetUserDetailsByEmail(email);
}
#endregion
}
这里GetUserDetailsByEmail_Result
在DemoModel.edmx创建Complex type
。它包含一些标量属性。
基本上我想要做的是,我想从客户端(c#)端调用此方法。这里是我的客户端代码
//svc.GetUserDetailsByEmailCompleted += new EventHandler<GetUserDetailsByEmailCompletedEventArgs>(svc_GetUserDetailsByEmailCompleted);
GetUserDetailsByEmail_Result dtbUserDetails = svc.GetUserDetailsByEmailAsync(loginName);
这里SVC是Service1Client
的对象。这里我简单地调用wcf方法。它给了我一个错误
无法隐式转换类型“无效”到“Demo.DemoServiceReference_Client.GetUserDetailsByEmail_Result”
它的工作原理,当我使用svc_GetUserDetailsByEmailCompleted方法。但我想直接在dtbUserDetails
中返回数据。我怎样才能做到这一点?我的WCF服务或客户端有任何更改吗?或者在WCF方法声明?
我不会使用实体框架对象作为返回对象,而是创建简单的POCO来充当数据传输对象。 – Oscar
感谢您的回复。但我不了解POCO。你能给我任何链接或教程吗? –
普通旧C-Sharp对象: http://en.wikipedia.org/wiki/Plain_Old_CLR_Object – Oscar