/// <summary> /// Constructs a new instance /// </summary> /// <param name="caller"></param> /// <param name="proxy"></param> /// <param name="invocationConfiguration"></param> /// <param name="args"></param> /// <param name="invocationValues"></param> /// <param name="canCancel"></param> public SolidProxyInvocation( object caller, ISolidProxy <TObject> proxy, ISolidProxyInvocationConfiguration <TObject, TMethod, TAdvice> invocationConfiguration, object[] args, IDictionary <string, object> invocationValues, bool canCancel) { CancellationTokenSource = SetupCancellationTokenSource(args, canCancel); Caller = caller; Proxy = proxy; SolidProxyInvocationConfiguration = invocationConfiguration; InvocationAdvices = invocationConfiguration.GetSolidInvocationAdvices(); Arguments = args; if (invocationValues != null && invocationValues.Any()) { _invocationValues = invocationValues.Select(o => new InvocationValue(o.Key, o.Value)).ToDictionary(o => o.KeyLower, o => o); } }
/// <summary> /// Constructs a proxy. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="solidProxy"></param> /// <returns></returns> public T CreateInterfaceProxy <T>(ISolidProxy <T> solidProxy) where T : class { var proxy = (SolidProxyCastle <T>)solidProxy; return((T)ProxyGenerator.CreateInterfaceProxyWithoutTarget(typeof(T), new Type[] { typeof(ISolidProxy) }, proxy)); }
public ISolidProxyInvocation CreateProxyInvocation(object caller, ISolidProxy solidProxy, object[] args, IDictionary <string, object> invocationValues, bool canCancel) { return(new SolidProxyInvocation <TObject, TMethod, TAdvice>(caller, (ISolidProxy <TObject>)solidProxy, this, args, invocationValues, canCancel)); }