Пример #1
0
        protected override object GetMember(GetMemberAction action)
        {
            if (String.Compare("Length", action.Name, StringComparison.Ordinal) == 0) {
                return _elements.Count;
            }

            return base.GetMember(action);
        }
Пример #2
0
            public override MetaObject GetMember(GetMemberAction action, MetaObject[] args)
            {
                if (ImplementsActions(StandardActionKinds.GetMember))
                {
                    return(CallMethodUnary(action, "GetMember"));
                }

                return(base.GetMember(action, args));
            }
Пример #3
0
 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)
        );
 }
Пример #4
0
        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;
        }
Пример #5
0
        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);
        }
Пример #6
0
 /// <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));
 }
Пример #7
0
 /// <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));
 }
Пример #8
0
            public override MetaObject GetMember(GetMemberAction action, MetaObject[] args)
            {
                if (ImplementsActions(StandardActionKinds.GetMember)) {
                    return CallMethodUnary(action, "GetMember");
                }

                return base.GetMember(action, args);
            }
Пример #9
0
 /// <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();
 }
Пример #10
0
 /// <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();
 }