2011-03-31 94 views
0

我已经创建了一个WCFDataService,并为用户验证提供了一个自定义webget方法,使用它从wpf应用程序中进行验证。WCFDataService无法转换

public static void InitializeService(DataServiceConfiguration config) 
{ 
    config.SetEntitySetAccessRule("*", EntitySetRights.All); 
    config.SetServiceOperationAccessRule("ValidateUser", ServiceOperationRights.All); 
    config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2; 
    config.UseVerboseErrors = true; 
} 

[WebGet] 
public bool ValidateUser(string UserName, string Password) 
{ 
    return Convert.ToBoolean(MembershipService.ValidateUser(UserName, Password)); 
} 

客户端有以下代码。

public Boolean ValidateUser(string UserName, string Password) 
{ 
    return Convert.ToBoolean(__context.Execute<Boolean>(new Uri(string.Format("{0}ValidateUser?UserName='{1}'&Password='{2}'", __context.BaseUri, UserName, Password)))); 
} 

我正在错误:

无法转换类型的对象 'System.Data.Services.Client.QueryOperationResponse`1 [System.Boolean]' 为类型 'System.IConvertible'。

是否尝试过谷歌,但错误没有太多的信息,请任何一个可以建议我正确的方向,或解决方案,链接,文章.....

预先感谢您。

回答

1

Execute返回IEnumerable,因此无法使用Convert.ToBoolean转换为bool。你需要调用.Single()来获取第一个(也是唯一的)项。

相关问题