2009-09-29 5 views
0

Dans mon webservice (WCF) j'ai cette fonctionRemplissez e.Error dans webservice silverlight

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

Quand je vous appelle cette fonction dans mon application silverlight, je veux savoir s'il y avait une erreur.

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

    } 
} 

Ma question est, comment puis-je remplir le e.error? Lorsque la connexion n'est pas réussie dans mon service, je veux lancer une exception ..

Répondre

1

Il s'agit d'une question très courante, les gens demandent à propos de jeter l'exception de WCF à Silverlight. La réponse dépend de la version de Silverlight que vous utilisez. Avant Silverlight 3, la capture des exceptions/fautes n'était pas prise en charge. La solution la plus élégante et générique pour SL2 est décrit ici: http://www.codeproject.com/KB/silverlight/SilverlightExceptions.aspx

Depuis Silverlight 3 a été libéré, il y a un soutien partiel, qui peut être utilisé avec quelques astuces, comme décrit ici:

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

0

Pour lancer une exception à travers WCF, vous pouvez utiliser FaultException.

Et e.Error seront remplis.