public void FromStream(DataReader reader, StateDictionary state, Utils.Logger logger) { _reader = reader; _state = state; _logger = logger; if (_state.ContainsKey("parent")) { _parent = _state["parent"]; } FromStream(); }
static object GetValue(object target, string name, bool caseSensitive) { Type baseType; if (target is Type) { baseType = (Type)target; } else { baseType = target.GetType(); } PropertyInfo prop = baseType.GetProperty(name, GetFlags(caseSensitive)); if (prop == null) { FieldInfo field = baseType.GetField(name, GetFlags(caseSensitive)); if (field == null) { // If a parser type then see if we can pull the value from its state dictionary BaseParser targetParser = target as BaseParser; if (targetParser != null) { StateDictionary dict = targetParser.GetState(); if (dict.ContainsKey(name)) { return(dict[name]); } } throw new ArgumentException(String.Format(Properties.Resources.ExpressionResolver_CannotFindProperty, name)); } return(field.GetValue(target)); } else { return(prop.GetValue(target, null)); } }