public void Start()
        {
            var invocationInfo = InvocationInfo.Create(
                typeof(AppConfigPeriodicRefreshHandlerAopProxy),
                nameof(Start),
                Start);

            _interceptionHandler.Invoke(invocationInfo);
        }
        public T GetX()
        {
            var invocationInfo = InvocationInfo.Create(
                typeof(ContainerAopProxy),
                nameof(GetX),
                GenericArgumentInfo.EmptyArray,
                _classGenericArguments,
                ResultInfo.Create(typeof(T), _classGenericArgumentT),
                GetX);

            var result = _interceptionHandler.Invoke(invocationInfo);

            return((T)result.Result.Value);
        }
Exemple #3
0
        public void Swap <T>(ref T v1, ref T v2)
        {
            var genericArgumentT = GenericArgumentInfo.Create(typeof(T), nameof(T));
            var invocationInfo   = InvocationInfo.Create(
                typeof(RefUtilsAopProxy),
                nameof(Swap),
                new[]
            {
                ArgumentInfo.Create(typeof(T), nameof(v1), v1, ArgumentSpecialType.Ref, genericArgumentT),
                ArgumentInfo.Create(typeof(T), nameof(v2), v2, ArgumentSpecialType.Ref, genericArgumentT)
            },
                new[]
            {
                genericArgumentT
            },
                Swap <T>);

            var result = _interceptionHandler.Invoke(invocationInfo);

            const int v1Index = 0;
            const int v2Index = 1;

            v1 = (T)result.Arguments[v1Index].Value;
            v2 = (T)result.Arguments[v2Index].Value;
        }
        //TODO do we need a link to IDisposable interface?
        public void Dispose()
        {
            var invocationInfo = InvocationInfo.Create(
                typeof(TestInterfaceAopProxy),
                nameof(Dispose),
                Dispose);

            _interceptionHandler.Invoke(invocationInfo);
        }
        public void DoSomethingInternal()
        {
            var invocationInfo = InvocationInfo.Create(
                typeof(InternalInterfaceAopProxy),
                nameof(DoSomethingInternal),
                DoSomethingInternal);

            _interceptionHandler.Invoke(invocationInfo);
        }
        public T GetFoo <T>() where T : class
        {
            var genericArgument1 = GenericArgumentInfo.Create(
                typeof(T),
                nameof(T),
                new[] { GenericArgumentRestriction.Create(GenericArgumentRestrictionType.Class) });

            var invocationInfo = InvocationInfo.Create(
                typeof(InterfaceWithGenericMethodAopProxy),
                nameof(GetFoo),
                new[]
            {
                genericArgument1
            },
                ResultInfo.Create(typeof(T), genericArgument1),
                GetFoo <T>);

            var result = _interceptionHandler.Invoke(invocationInfo);

            return((T)result.Result.Value);
        }
Exemple #7
0
        public T GetElement <T>(int index)
        {
            var genericArgumentT = GenericArgumentInfo.Create(typeof(T), nameof(T));
            var invocationInfo   = InvocationInfo.Create(
                typeof(ContainerAopProxy),
                nameof(GetElement),
                new[]
            {
                ArgumentInfo.Create(typeof(int), nameof(index), index, genericArgumentT)
            },
                new[]
            {
                genericArgumentT
            },
                ResultInfo.Create(typeof(T), genericArgumentT),
                GetElement <T>);

            var result = _interceptionHandler.Invoke(invocationInfo);

            return((T)result.Result.Value);
        }
Exemple #8
0
        public long GetContactPhoneNumber(string firstName, string lastName)
        {
            var invocationInfo = InvocationInfo.Create(
                typeof(PhoneBookAopProxy),
                nameof(GetContactPhoneNumber),
                new[]
                {
                    ArgumentInfo.Create(typeof (string), nameof(firstName), firstName),
                    ArgumentInfo.Create(typeof (string), nameof(lastName), lastName)
                },
                ResultInfo.Create(typeof(long)),
                GetContactPhoneNumber);

            var result = _interceptionHandler.Invoke(invocationInfo);

            return (long)result.Result.Value;
        }