title: Where to store configuration information
body: <p>I have a console application that I am rebuilding from C to C#.  This application has to be able to support the legacy method of storing information like parameters from a command-line and parameters from a file (called the system parameters) that customize each run. The system parameters file is in plain-text with a simple key-value structure.</p>
  
  <h2>My questions are:</h2>
  
  <ul>
  <li>Should I combine these different parameters into a single Configuration object?</li>
  <li>How would I call this configuration object from the code to store parameters?</li>
  <li>How would I call this configuration object from the code to retrieve parameters?
  
  <ul>
  <li>Should this object be strongly-typed?</li>
  </ul></li>
  <li>I will need access to this structure from a lot of different places in the code. What is the most elegant way to retrieve the values in the object without passing the object itself around everywhere?</li>
  </ul>
  
  <p>I have a feeling that it should be a single, strongly-typed object and that it should be an instantiated object that is retrieved from a repository with a static retrieval method however I really want validation of this method.</p>