J'ai une classe qui gère toute l'interaction dans mon application avec mon service WCF et il semble que MSDN dit que l'utilisation de l'instruction Using) _ avec WCF est mauvaise - je peux voir pourquoi est mauvais et d'accord avec cela (http://msdn.microsoft.com/en-us/library/aa355056.aspx)Plusieurs méthodes pour appeler un service WCF
mon problème est que leur méthode suggérée de mise en œuvre signifiera que j'ai 10 méthodes [comme 10 les méthodes publiques de mon service] qui auront le même code de structure et cela bien sûr ne suit pas le principal SEC - le code ressemble à ce qui suit:
try
{
results = _client.MethodCall(input parameteres);
_client.Close();
}
catch (CommunicationException)
{
if (_client != null && _client.State != CommunicationState.Closed)
{
_client.Abort();
}
}
catch (TimeoutException)
{
if (_client != null && _client.State != CommunicationState.Closed)
{
_client.Abort();
}
}
catch (Exception ex)
{
if (_client != null && _client.State != CommunicationState.Closed)
{
_client.Abort();
}
throw;
}
cette n'a pas encore de connexion mais bien sûr quand je viens de commencer à l'enregistrer, je vais devoir ajouter le travail de journalisation dans presque 10 endroits différents
Quelqu'un at-il des conseils sur comment je peux être un peu plus débrouillard ici en réutilisant le code
grâce
paul
Je pense que la solution que vous avez s UGG est très bon. l'utilisation de méthodes d'extension rendra cette fonction incroyablement utile - si j'ai étendu System.ServiceModel.ClientBase avec CloseIfNeeded() pensez-vous que ce serait un bon ou un mauvais coup? – stack72
Qu'en est-il de l'implémentation de 'System.ServiceModel.ICommunicationObject'? Ce serait plus conforme à l'intention architecturale de cette interface qui fournit les primitives pour la gestion de l'état de la communication. –
mal donner un aller - merci :) – stack72