I think I outsmarted myself this time. Feel free to edit the title also I could not think of a good one.
I am reading from a file and then in that file will be a string
So here is the answer I came up with, I am a little worried about boxing and unboxing but it works for now
public class WorkContainer:Dictionary
{
public T GetKeyValue(string Parameter)
{
if (Parameter.StartsWith("[? "))
{
string key = Parameter.Replace("[? ", "").Replace(" ?]", "");
if (this.ContainsKey(key))
{
if (typeof(T) == typeof(string) )
{
// Special Case for String, especially if the object is a class
// Take the ToString Method not implicit conversion
return (T)Convert.ChangeType(this[key].ToString(), typeof(T));
}
else
{
return (T)this[key];
}
}
else
{
return default(T);
}
}
else
{
return (T)Convert.ChangeType(Parameter, typeof(T));
}
}
}