我创建了一个 WCF 服务应用程序。中的方法很少Service1.svc
。
这是我的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
是Complex type
在DemoModel.edmx中创建的。它包含一些标量属性。
基本上我想做的是,我想从客户端(c#)端调用这个方法。这是我的客户端代码
//svc.GetUserDetailsByEmailCompleted += new EventHandler<GetUserDetailsByEmailCompletedEventArgs>(svc_GetUserDetailsByEmailCompleted);
GetUserDetailsByEmail_Result dtbUserDetails = svc.GetUserDetailsByEmailAsync(loginName);
这里svc是Service1Client
. 这里我只是简单地调用 wcf 方法。它给了我一个错误
无法将类型“void”隐式转换为“Demo.DemoServiceReference_Client.GetUserDetailsByEmail_Result”
当我使用svc_GetUserDetailsByEmailCompleted方法时它可以工作。但我希望直接在dtbUserDetails
. 我怎样才能做到这一点?我的 WCF 服务或客户端是否有任何变化?还是在 WCF 方法声明中?