[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/tlecomte/ClearScript/master/ClearScript/DynamicHostMetaObject.cs [Back]  [Original]

// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.

using System.Collections.Generic;
using System.Dynamic;

namespace Microsoft.ClearScript
{
    internal sealed class DynamicHostMetaObject : DynamicMetaObject
    {
        private readonly IDynamicMetaObjectProvider metaObjectProvider;
        private readonly DynamicMetaObject metaObject;

        public DynamicHostMetaObject(IDynamicMetaObjectProvider metaObjectProvider, DynamicMetaObject metaObject)
            : base(metaObject.Expression, metaObject.Restrictions, metaObject.Value)
        {
            this.metaObjectProvider = metaObjectProvider;
            this.metaObject = metaObject;
        }

        public bool HasMember(string name, bool ignoreCase)
        {
            return DynamicHostObject.HasMember(metaObjectProvider, metaObject, name, ignoreCase);
        }

        #region DynamicMetaObject overrides

        public override IEnumerable GetDynamicMemberNames()
        {
            return metaObject.GetDynamicMemberNames();
        }

        public override DynamicMetaObject BindBinaryOperation(BinaryOperationBinder binder, DynamicMetaObject arg)
        {
            return metaObject.BindBinaryOperation(binder, arg);
        }

        public override DynamicMetaObject BindConvert(ConvertBinder binder)
        {
            return metaObject.BindConvert(binder);
        }

        public override DynamicMetaObject BindCreateInstance(CreateInstanceBinder binder, DynamicMetaObject[] args)
        {
            return metaObject.BindCreateInstance(binder, args);
        }

        public override DynamicMetaObject BindDeleteIndex(DeleteIndexBinder binder, DynamicMetaObject[] indexes)
        {
            return metaObject.BindDeleteIndex(binder, indexes);
        }

        public override DynamicMetaObject BindDeleteMember(DeleteMemberBinder binder)
        {
            return metaObject.BindDeleteMember(binder);
        }

        public override DynamicMetaObject BindGetIndex(GetIndexBinder binder, DynamicMetaObject[] indexes)
        {
            return metaObject.BindGetIndex(binder, indexes);
        }

        public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
        {
            return metaObject.BindGetMember(binder);
        }

        public override DynamicMetaObject BindInvoke(InvokeBinder binder, DynamicMetaObject[] args)
        {
            return metaObject.BindInvoke(binder, args);
        }

        public override DynamicMetaObject BindInvokeMember(InvokeMemberBinder binder, DynamicMetaObject[] args)
        {
            return metaObject.BindInvokeMember(binder, args);
        }

        public override DynamicMetaObject BindSetIndex(SetIndexBinder binder, DynamicMetaObject[] indexes, DynamicMetaObject value)
        {
            return metaObject.BindSetIndex(binder, indexes, value);
        }

        public override DynamicMetaObject BindSetMember(SetMemberBinder binder, DynamicMetaObject value)
        {
            return metaObject.BindSetMember(binder, value);
        }

        public override DynamicMetaObject BindUnaryOperation(UnaryOperationBinder binder)
        {
            return metaObject.BindUnaryOperation(binder);
        }

        #endregion
    }
}

Web Proxy Viewer  |  New URL  |  Original Page