public static object ParseNew(string s, Type t)
{
// Check Arguments
if(t == null || string.IsNullOrEmpty(s))
return null;
// Attempt A Conversion
IZXPConverter conv;
if(GetConverter(t, out conv)) {
object value = null;
conv.Convert(s, out value);
return value;
}
else if(t.IsArray) {
object val = null;
if(!t.HasElementType) return null;
Type eType = t.GetElementType();
if(ParseArray(eType, s, out val))
return val;
else return null;
}
// Create A Complex Value
ZXPProxy zpp = ZXPProxy.GetProxy(t);
object o = CreateDefaultFromType(zpp.Type);
ParseInto(s, o, zpp);
return o;
}