GetTypeRestrictionForDynamicMetaObject() static private method

static private GetTypeRestrictionForDynamicMetaObject ( DynamicMetaObject obj ) : BindingRestrictions
obj System.Dynamic.DynamicMetaObject
return System.Dynamic.BindingRestrictions
コード例 #1
0
 protected virtual ComUnwrappedMetaObject UnwrapSelf() {
     return new ComUnwrappedMetaObject(
         ComObject.RcwFromComObject(Expression),
         Restrictions.Merge(ComBinderHelpers.GetTypeRestrictionForDynamicMetaObject(this)),
         ((ComObject)Value).RuntimeCallableWrapper
     );
 }
コード例 #2
0
        internal DynamicMetaObject Invoke()
        {
            _keywordArgNames   = _callInfo.ArgumentNames.ToArray();
            _totalExplicitArgs = _args.Length;

            Type[] marshalArgTypes = new Type[_args.Length];

            // We already tested the instance, so no need to test it again
            for (int i = 0; i < _args.Length; i++)
            {
                DynamicMetaObject curMo = _args[i];
                _restrictions      = _restrictions.Merge(ComBinderHelpers.GetTypeRestrictionForDynamicMetaObject(curMo));
                marshalArgTypes[i] = MarshalType(curMo, _isByRef[i]);
            }

            _varEnumSelector = new VarEnumSelector(marshalArgTypes);

            return(new DynamicMetaObject(
                       CreateScope(MakeIDispatchInvokeTarget()),
                       BindingRestrictions.Combine(_args).Merge(_restrictions)
                       ));
        }