Revision: 55367
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at February 3, 2012 23:53 by rstokoe
Initial Code
namespace WcfChannelExtensions { /// <summary> /// Provides extension methods for WCF Service Channels /// </summary> public static class WcfChannelExtensions { /// <summary> /// Make WCF service calls without needing to worry about disposing of underlying connection when Faults occur. /// </summary> /// <typeparam name="T">The channel</typeparam> /// <param name="client">The service.</param> /// <param name="work">Code to execute.</param> /// <example>new ChannelFactory<IFooContract>().CreateChannel().SafeInvoke(service => /// { /// service.Foo(); /// });</example> public static void SafeInvoke<T>(this T client, Action<T> work) where T : ICommunicationObject { try { client.Open(); work(client); client.Close(); } catch { client.Abort(); throw; } } } }
Initial URL
http://www.sage.co.uk/devblog
Initial Description
Shows how to generically handle fault exceptions in WCF Services which prevent you relying on using() {} to dispose of the connection.
Initial Title
Extension Method to Correctly Close WCF Connections When Faults Occur
Initial Tags
Initial Language
C#