using System;
using System;
using System.ServiceModel;
///
/// Helper class for WCF clients
///
public class WcfClientUtils
{
///
/// Execute actions against the client and aborts the client on a faulted state
///
/// Client type
/// Client instance
/// Actions to perform on instance
///
/// WcfClientUtils.Execute(new ServiceReference1.Service1Client(),
/// client =>
/// {
/// var returnData = client.HelloWorld());
/// });
///
public static void Execute(T client, Action action) where T : ICommunicationObject
{
try
{
//client.Open();
action(client);
client.Close();
}
catch (CommunicationException)
{
client.Abort();
throw;
}
catch (TimeoutException)
{
client.Abort();
throw;
}
catch (Exception)
{
if (client.State == CommunicationState.Faulted)
{
client.Abort();
}
throw;
}
}
}
And this is how you could use this class
WcfClientUtils.Execute(new ServiceReference1.Service1Client(),
client =>
{
var returnData = client.HelloWorld());
});
0 kommentarer:
Post a Comment