コード例 #1
0
 /// <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);
     }
 }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
 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));
 }