protected override object GetMember(GetMemberAction action) { if (String.Compare("Length", action.Name, StringComparison.Ordinal) == 0) { return _elements.Count; } return base.GetMember(action); }
public override MetaObject GetMember(GetMemberAction action, MetaObject[] args) { if (ImplementsActions(StandardActionKinds.GetMember)) { return(CallMethodUnary(action, "GetMember")); } return(base.GetMember(action, args)); }
public override MetaObject GetMember(GetMemberAction action, MetaObject[] args) { return new MetaObject( Expression.Call( Expression.Convert(Expression, LimitType), typeof(Duck).GetMethod("GetMember", new Type[] { typeof(GetMemberAction) }), Expression.Constant(action) ), Restrictions.TypeRestriction(Expression, LimitType) ); }
protected override object GetMember(GetMemberAction action) { if (_parameters == null) { _parameters = new Dictionary<string, object>(); } object value; if (_parameters.TryGetValue(action.Name, out value)) { return value; } string operationGroup = action.Name; if (_operationGroup != null) { operationGroup = _operationGroup + "." + operationGroup; } RestClient operationGroupClient = new RestClient(_uriFormat, _mode, operationGroup, _parameters); return operationGroupClient; }
protected override object GetMember(GetMemberAction action) { string name = action.Name; if (String.CompareOrdinal(name, "Name") == 0) { return _element.Name.LocalName; } else if (String.CompareOrdinal(name, "Parent") == 0) { XElement parent = _element.Parent; if (parent != null) { return new XmlNode(parent); } return null; } else if (String.CompareOrdinal(name, "Value") == 0) { return _element.Value; } else if (String.CompareOrdinal(name, "Nodes") == 0) { return new XmlNodeList(_element.Elements()); } else if (String.CompareOrdinal(name, "Xml") == 0) { StringWriter sw = new StringWriter(); _element.Save(sw, SaveOptions.None); return sw.ToString(); } else { XAttribute attribute = _element.Attribute(name); if (attribute != null) { return attribute.Value; } XElement childNode = _element.Element(name); if (childNode != null) { if (childNode.HasElements == false) { return childNode.Value; } return new XmlNode(childNode); } } return base.GetMember(action); }
/// <summary> /// Creates ActionExpression representing a GetMember action. /// </summary> /// <param name="name">The qualifier.</param> /// <param name="result">Type of the result desired (The ActionExpression is strongly typed)</param> /// <param name="arguments">Array of arguments for the action expression</param> /// <param name="getMemberFlags">The binding flags for the get operation</param> /// <returns>New instance of the ActionExpression</returns> public static ActionExpression GetMember(SymbolId name, GetMemberBindingFlags getMemberFlags, Type result, params Expression[] arguments) { return(ActionExpression(GetMemberAction.Make(name, getMemberFlags), arguments, result)); }
/// <summary> /// Creates ActionExpression representing a GetMember action. /// </summary> /// <param name="name">The qualifier.</param> /// <param name="result">Type of the result desired (The ActionExpression is strongly typed)</param> /// <param name="arguments">Array of arguments for the action expression</param> /// <returns>New instance of the ActionExpression</returns> public static ActionExpression GetMember(SymbolId name, Type result, params Expression[] arguments) { return(ActionExpression(GetMemberAction.Make(name), arguments, result)); }
public override MetaObject GetMember(GetMemberAction action, MetaObject[] args) { if (ImplementsActions(StandardActionKinds.GetMember)) { return CallMethodUnary(action, "GetMember"); } return base.GetMember(action, args); }
/// <summary> /// When overridden in a derived class provides the non-Meta implementation of getting a member. /// /// When not overridden the call site requesting the action determines the behavior. /// </summary> protected virtual object GetMember(GetMemberAction action) { throw new NotSupportedException(); }