System.ComponentModel.ScriptExpression.PropertyAccessExpression.GetValue C# (CSharp) Method

GetValue() public method

public GetValue ( IScriptExpressionNameResolver nameResolver ) : object
nameResolver IScriptExpressionNameResolver
return object
            public object GetValue(IScriptExpressionNameResolver nameResolver)
            {
                object value = nameResolver.ResolveName(_parts[0]);

                if (_parts.Length != 1) {
                    BindingFlags flags = BindingFlags.FlattenHierarchy |
                                         BindingFlags.Public |
                                         BindingFlags.Instance;

                    for (int i = 1; i < _parts.Length; i++) {
                        PropertyInfo pi = value.GetType().GetProperty(_parts[i], flags);
                        if (pi != null) {
                            value = pi.GetValue(value, null);
                        }
                        else {
                            throw new InvalidOperationException("Unknown property '" + _parts[i] + "'");
                        }
                    }
                }

                return value;
            }
ScriptExpression.PropertyAccessExpression