title: Best Practice on storing WCF Binding paremeters to be shared by both proxies and WCF Services?
body: <p>I am currently coding a set of helper classes to be used when creating a proxy client[for Client/Silverlight use] for consuming  WCF services on the Server (NOT using Add Service Reference). </p>
  
  <p>Notice how I am setting up the buffer size to the max allowed (on the first code snippet), because for some services we have some big payload requirements. The secundary effect is that now, I have to setup the WCF service to share the same buffer size with the proxy client, so that they are in sync. I don't want to have to enter these numbers in a configuration file (one on the client, one on the server); instead I want to share some kind of configuration object for both, so that I only change the settings once. </p>
  
  <p>My initial idea is creating a static class with static readonly fields as configuration items, to provide easy access to each configuration set, as well as intellisense integration. Any thoughts or recommendations?</p>
  
  <pre><code>// .... First code snippet
          BasicHttpBinaryBinding binding = new BasicHttpBinaryBinding ();
  
          // Increase the buffer sizes to the limit
          binding.MaxBufferSize = Int32.MaxValue;  // &lt;------- HARD CODED
          binding.MaxReceivedMessageSize = Int32.MaxValue; // &lt;------- HARD CODED
  
          EndpointAddress endPoint = new EndpointAddress(
              string.Format ( "{0}{1}", _baseUri, string.Format ( BASE_SERVICE,       serviceName ) ) );
  </code></pre>
  
  <p>//......................</p>
  
  <p>/*
  CONFIGURATION CLASSES
  */</p>
  
  <pre><code>public class BindingBufferConfiguration
  {
      public int MaxBufferSize { get; protected set;}
      public int MaxReceivedMessageSize { get; protected set; }
  
      public BindingBufferConfiguration (int MaxBufferSize,int MaxReceivedMessageSize)
      {
          this.MaxBufferSize = MaxBufferSize;
          this.MaxReceivedMessageSize = MaxReceivedMessageSize;
      }
  }
  
   public static class PatientModuleBufferConfiguration
  {
       public static readonly BindingBufferConfiguration PatientProxyBufferConfiguration = new BindingBufferConfiguration ( 4096, 4096 );
       public static readonly BindingBufferConfiguration PatientPhotoProxyBufferConfiguration = new BindingBufferConfiguration(1024 * 500 /*500 KB*/,1024 * 500 /*500 KB*/ )
       // ....
  }
  </code></pre>
  
  <hr>
  
  <p>Either no one really has a good answer to the question, or there is no right answer. In my case, this has been working for 3 motnhs and no issues so far. </p>
  
  <p>I am marking the question as answered. </p>