I'm posting this message to let you know on a little expension the config class used in MMO development series.
This ideas comes out to me because as the code is now, we cannot set vector on the config file (we need to set X and the Y component seperatly).
Here I post the new config implementation:

So this is the method that get the data at specified config name
Code:
public TData GetValue<TData>(string keyName, Func<string, TData> func = null)
        {
            try
            {
                if (typeof (TData) == typeof (string))
                    return (TData) LoadedData[keyName];

                var type = (from item in LoadedData
                            let name = keyName
                            where item.Key == keyName
                            select item.Value).FirstOrDefault();


                var hasParser = typeof (TData).GetMethod("Parse", new Type[] {typeof (string)});
                if (hasParser != null && type != null)
                    return (TData) hasParser.Invoke(null, new object[] {type});
                else
                {
                    if (func != null)
                    {
                        //Name=FuncName(0, 0, 0, 0);
                        var args = type.ToString().Split('(');
                        if (args[1] != null)
                            return func(args[1].Replace(")", string.Empty));

                      }
            }
            catch (Exception ex)
            {
                throw new Exception(string.Format("Cannot get the value, from key = {0}. Error info: {1} {2}", keyName,
                                                  ex.Message, ex.InnerException));
            }

            return default(TData);
        }

and here there is the modify LoadConfig method that now allow you to add comment to the file.
public void LoadConfigFile(string fileName)
        {
            --------- Same code as before --------

            using (var sr = new StreamReader(filePath))
            {
                var setting = string.Empty;

                while ((setting = sr.ReadLine()) != null)
                {
                    if(setting.StartsWith("[") || setting.EndsWith("]"))
                        continue;

                    if (setting.StartsWith("#"))
                        continue;

                    var tokens = setting.Split('=');
                    if(tokens.Length != 2)
                        continue;

                    try
                    {
                        LoadedData.Add(tokens[0], (object) tokens[1].Replace(";", string.Empty).Replace(" ", string.Empty));
                    }
                    catch (Exception ex)
                    {
                        throw new Exception(string.Format("An error occure durin the reading of key = {0}, value = {1}. Error Info: {2}", tokens[0], tokens[1], ex.Message));
                    }
                }
            }
        }
I've just generalized the concept of the loaded data into a generic method,
The function passed is the parse method between th text rapresentation of the data and the real data.
This code automatcly call the pars emethod of any type in the assambly or call the action if he cannot find any parse method.
Wish that this code will be used or modify for the finaly MMO class.

Best regards, Alberto Vaudagna.