public override object NewInstance(object[] parameters)
{
var dynobj = new DynamicObject(this);
if (parameters == null || parameters.Length == 0)
return dynobj;
var arg = parameters[0];
if (arg == null)
arg = "null";
else
arg = arg.ToString();
var str = (string)arg;
for (int k = 0; k < str.Length; k++)
dynobj.SetValue(k.ToString(), str[k].ToString());
dynobj.SetValue("length", str.Length, false);
return dynobj;
}