public ThreadSafeProxyBuilderDependencies(IThreadSafeProxyFactory defaultThreadSafeProxyFactory, MethodInfoExtractor methodInfoExtractor, DynamicThreadSafeProxyFactoryInvoker dynamicThreadSafeProxyFactoryInvoker, Func<object, ILock> defaultLockFactory) { if (defaultThreadSafeProxyFactory == null) { throw new ArgumentNullException("defaultThreadSafeProxyFactory"); } if (methodInfoExtractor == null) { throw new ArgumentNullException("methodInfoExtractor"); } if (dynamicThreadSafeProxyFactoryInvoker == null) { throw new ArgumentNullException("dynamicThreadSafeProxyFactoryInvoker"); } if (defaultLockFactory == null) { throw new ArgumentNullException("defaultLockFactory"); } _defaultThreadSafeProxyFactory = defaultThreadSafeProxyFactory; _methodInfoExtractor = methodInfoExtractor; _dynamicThreadSafeProxyFactoryInvoker = dynamicThreadSafeProxyFactoryInvoker; _defaultLockFactory = defaultLockFactory; }
public ThreadSafeProxyBuilderDependencies(IThreadSafeProxyFactory defaultThreadSafeProxyFactory, MethodInfoExtractor methodInfoExtractor, DynamicThreadSafeProxyFactoryInvoker dynamicThreadSafeProxyFactoryInvoker, Func <object, ILock> defaultLockFactory) { if (defaultThreadSafeProxyFactory == null) { throw new ArgumentNullException("defaultThreadSafeProxyFactory"); } if (methodInfoExtractor == null) { throw new ArgumentNullException("methodInfoExtractor"); } if (dynamicThreadSafeProxyFactoryInvoker == null) { throw new ArgumentNullException("dynamicThreadSafeProxyFactoryInvoker"); } if (defaultLockFactory == null) { throw new ArgumentNullException("defaultLockFactory"); } _defaultThreadSafeProxyFactory = defaultThreadSafeProxyFactory; _methodInfoExtractor = methodInfoExtractor; _dynamicThreadSafeProxyFactoryInvoker = dynamicThreadSafeProxyFactoryInvoker; _defaultLockFactory = defaultLockFactory; }
internal SingleUseForMembersThreadSafeProxyBuilderContext(MethodInfoExtractor methodInfoExtractor, Type proxyType, Func <IEnumerable <MethodInfo>, ThreadSafeProxyBuilder <TProxy> > forMethodApplier) : base(methodInfoExtractor, proxyType) { if (forMethodApplier == null) { throw new ArgumentNullException("forMethodApplier"); } _forMethodApplier = forMethodApplier; }
internal ThreadSafeProxyBuilder(TProxy subject, Type proxyType, DependencyResolver.ThreadSafeProxyBuilderDependencies dependencies) : base(dependencies.MethodInfoExtractor, proxyType) { if (subject == null) { throw new ArgumentNullException("subject"); } if (proxyType != typeof(TProxy) && (!proxyType.IsAssignableFrom(subject.GetType()))) { throw new ArgumentException(ExceptionMessages.SubjectCannotBeAssignedToProxyType); } _subject = subject; _threadSafeProxyFactory = dependencies.DefaultThreadSafeProxyFactory; _methodInfoExtractor = dependencies.MethodInfoExtractor; _dynamicThreadSafeProxyFactoryInvoker = dependencies.DynamicThreadSafeProxyFactoryInvoker; _lockFactory = dependencies.DefaultLockFactory; }
internal ForMembersThreadSafeProxyBuilderContextBase(MethodInfoExtractor methodInfoExtractor, Type proxyType) { if (methodInfoExtractor == null) { throw new ArgumentNullException("methodInfoExtractor"); } if (proxyType == null) { throw new ArgumentNullException("proxyType"); } if (!typeof(TProxy).IsAssignableFrom(proxyType)) { throw new ArgumentException(ExceptionMessages.TProxyNotAssignableFromProxyType, "proxyType"); } _methodInfoExtractor = methodInfoExtractor; _proxyType = proxyType; }