Example #1
0
        public object CreateProxy(IThreadSafeProxyFactory threadSafeProxyFactory, object obj, Type proxyType, Predicate <MethodInfo> methodIncluder, ILock theLock)
        {
            var typedFactoryCall
                = _typedFactoryCallProvider.GetTypedFactoryCall(proxyType);

            return(typedFactoryCall.Invoke(threadSafeProxyFactory, obj, methodIncluder, theLock));
        }
Example #2
0
        public TypedFactoryCall GetTypedFactoryCall(Type proxyType)
        {
            TypedFactoryCall typedFactoryCall;

            lock (_cachedTypedFactoryCallsLockingObject)
            {
                if (!_cachedTypedFactoryCalls.TryGetValue(proxyType, out typedFactoryCall))
                {
                    typedFactoryCall = _typedFactoryCallProvider.GetTypedFactoryCall(proxyType);
                    _cachedTypedFactoryCalls[proxyType] = typedFactoryCall;
                }
            }

            return(typedFactoryCall);
        }