/// <summary> /// Initializes a new instance of the <see cref="CacheEntryProcessorHolder"/> class. /// </summary> /// <param name="proc">The processor to wrap.</param> /// <param name="arg">The argument.</param> /// <param name="processFunc">Delegate to call generic <see cref="ICacheEntryProcessor{K, V, A, R}.Process"/> on local node.</param> /// <param name="keyType">Type of the key.</param> /// <param name="valType">Type of the value.</param> public CacheEntryProcessorHolder(object proc, object arg, Func <IMutableCacheEntryInternal, object, object> processFunc, Type keyType, Type valType) { Debug.Assert(proc != null); Debug.Assert(processFunc != null); _proc = proc; _arg = arg; _processFunc = processFunc; _processFunc = GetProcessFunc(_proc); _entryCtor = MutableCacheEntry.GetCtor(keyType, valType); }