>Hi all,
>
>I am trying to hide some complexity from the application within a settings Manager class. I want to have a method to return a value based on a setting name. The problem is the value may be an integer, string, logical, decimal, double, or datetime. What is the best way to do this so I can use a single method available to the app for obtaining these? A call might look like this:
>
>
>
>serialPort.Name = oSettingsManager.GetSettingByName("RfidPort");
>
>Or do I have only the option of returning everything as an object?
>serialPort.Name = oSettingsManager.GetSettingByName("RfidPort").ToString();
>
>
>
You would have to pass everything as an object and cast it back to the correct type. I'm using a class from West Wind for this:
http://www.west-wind.com/wwAppConfiguration/You basically create a property on an object and it automatically handles persisting & retrieving those settings for you. It's worth the money, but if you don't want to purchase anything you can use a similar idea for your class (what I'm about to describe isn't really how Rick's class works, but it might be easier to implement).
Basically, you could create a class which has strongly-typed members & properties. In the get of the property call your GetSettingByName method which returns an object type and then cast it back to the correct type. Or, instead of a get method just have a constructer which automatically loads all the settings once. Now all your code which accesses these values becomes much easier because it's type safe w/intellisense.