The .NET Dictionary object allows assignment of key/values like so:
Dictionary dict = new Dictionary&l
I think, your case is good place to use DynamicObject. I'll create an example for json using Dictionary internally.
Same idea can be used for xml also.
string json = @"{""Name"":""Joe"",
""Age"":30,
""Address"":{ ""City"":""NY"" }}";
dynamic dynObj = new DynamicJson(json);
Console.WriteLine(dynObj.Name);
Console.WriteLine(dynObj.Age);
Console.WriteLine(dynObj.Address.City);
--
public class DynamicJson : DynamicObject
{
Dictionary _Dict;
public DynamicJson(string json)
{
_Dict = (Dictionary)new JavaScriptSerializer().DeserializeObject(json);
}
DynamicJson(Dictionary dict)
{
_Dict = dict;
}
public override bool TryGetMember(GetMemberBinder binder, out object result)
{
result = null;
object obj;
if (!_Dict.TryGetValue(binder.Name, out obj)) return false;
if (obj is Dictionary)
{
result = new DynamicJson((Dictionary)obj);
}else
{
result = obj;
}
return true;
}
}