2009-09-29 50 views
0

在我的web服務(WCF)我有這個功能填寫e.Error在Silverlight Web服務

[OperationContract] 
public ChooseViewData GetNcs(FilterArgument filter, int dossiersId, int usersId, 
    string token) 
{   
    SessionInfo info = Tokens.CheckToken(usersId, token); 
    if (info.HasError) 
    { 
     //return null; 
    } 
} 

當我打電話給我的Silverlight應用程序這個功能,我想知道是否有錯誤發生。

void client_GetNcsCompleted(object sender, GetNcsCompletedEventArgs e) 
{ 
    if (e.Error == null) 
    { 

    } 
} 

我的問題是,我如何填寫e.error?當我的服務登錄不成功時,我想拋出一個異常。

回答

1

這是一個很常見的問題,人們詢問關於從WCF拋出異常到Silverlight。答案取決於您使用的Silverlight版本。在Silverlight 3之前,不支持捕獲異常/故障。 爲SL2最優雅和通用的解決方案在此描述: http://www.codeproject.com/KB/silverlight/SilverlightExceptions.aspx

由於Silverlight 3被釋放,有一個部分支持,其可與一些技巧被使用,如下所述:

http://www.netfxharmonics.com/2009/07/Understanding-WCF-Faults-in-Silverlight-3

0

要在WCF之間引發異常,可以使用FaultException

e.Error將被填充。