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); }
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); }
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); }
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; }