how to implement class with collection of string/object pairs so that an object can be returned with

Posted by matti on Stack Overflow See other posts from Stack Overflow or by matti
Published on 2010-04-06T14:13:58Z Indexed on 2010/04/06 14:23 UTC
Read the original article Hit count: 340

Filed under:
|

The values in a file are read as string and can be double, string or int or maybe even lists. An example file:

DatabaseName=SomeBase
Classes=11;12;13
IntValue=3        //this is required!
DoubleValue=4.0

I was thinking something like this:


public static T GetConfigValue(string cfgName)
{
    // here we just return for example the value which could
    // be List[int] if parameter cfgName='Classes'
    // and LoadConfig was called with Dictionary containing 
    // keyvaluepair 'Classes' / typeof(List[int])
}


public static bool LoadConfig(Dictionary reqSettings, 
                       Dictionary optSettings) 
{
    foreach (KeyValuePair kvPair in reqSettings)
    {
        if (ReadCheckAndStore(kVPair, true))
            return false;
    }
    foreach (KeyValuePair kvPair in reqSettings)
    {
        if (ReadCheckAndStore(kVPair, false))
            return false;
    }
    return true;
}

private static bool ReadCheckAndStore(KeyValuePair kVPair, bool isRequired)
{

     if (!ReadValue(kVPair.Key, out confValue) && isRequired)  //req. IntValue !found
         return false;

     //here also have to test if read value is wanted type.
     //and if yes store to collection.
}

Thanks a lot & BR! -Matti

PS. Additional issue is default values for optional settings. It's not elegant to pass them to LoadConfig in separate Dictionary, but that is an other issue...

© Stack Overflow or respective owner

Related posts about c#

Related posts about generics