Beispiel #1
0
        internal IndexerImage(PropertyInfo member) : base(member)
        {
            Debug.Assert(CanCreateFrom(member));

            var parameters = Property.GetIndexParameters();

            GetInvokers = new InvokerDispatch <InstanceIndexerGetInvoker>(parameters,
                                                                          (argumentCount) => CodeGenerator.InstanceIndexGetter(Property, argumentCount));

            SetInvokers = new InvokerDispatch <InstanceIndexerSetInvoker>(parameters,
                                                                          (argumentCount) => CodeGenerator.InstanceIndexSetter(Property, argumentCount));
        }
Beispiel #2
0
        internal CallableImage(MethodBase member,
                               [AllowNull] Func <int, InstanceMethodInvoker> instanceInvokerFactory,
                               [AllowNull] Func <int, StaticMethodInvoker> staticInvokerFactory) : base(member)
        {
            Debug.Assert(CanCreateFrom(member));

            var parameters = Base.GetParameters();

            if (RequiresInstance)
            {
                InstanceInvokers = new InvokerDispatch <InstanceMethodInvoker>(parameters, instanceInvokerFactory);
            }
            else
            {
                StaticInvokers = new InvokerDispatch <StaticMethodInvoker>(parameters, staticInvokerFactory);
            }
        }