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 because its like an xml file. But in the file will be a literal value or a "command"
to get the value from the workContainer
so
<Email>
[email protected]</Email>
or
<Email>[? MyEmail ?]</Email>
What I wanted
to do instead of writing ifs all over the place
to put it in a generic function
so logic is
If Container command grab from container else grab
string and convert
to desired type
Its up
to the user
to ensure the file is ok and the type is correct
so another example is
so
<Answer>3</Answer>
or
<Answer>[? NumberOfSales ?]</Answer>
This is the procedure I started
to work on
public class WorkContainer:Dictionary<string, object>
{
public T GetKeyValue<T>(string Parameter)
{
if (Parameter.StartsWith("[? "))
{
string key = Parameter.Replace("[? ", "").Replace(" ?]", "");
if (this.ContainsKey(key))
{
return (T)this[key];
}
else
{
// may throw error for value types
return default(T);
}
}
else
{
// Does not Compile
if (typeof(T) is string)
{
return Parameter
}
// OR return (T)Parameter
}
}
}
The Call would be
mail.
To = container.GetKeyValue<string>("
[email protected]");
or
mail.
To = container.GetKeyValue<string>("[? MyEmail ?]");
int answer = container.GetKeyValue<int>("3");
or
answer = container.GetKeyValue<int>("[? NumberOfSales ?]");
But it does not compile?