void InternalSetCachePolicy(RequestCachePolicy policy){
            // Delayed creation of CacheProtocol until caching is actually turned on.
            if (m_CacheBinding != null &&
                m_CacheBinding.Cache != null &&
                m_CacheBinding.Validator != null &&
                CacheProtocol == null &&
                policy != null &&
                policy.Level != RequestCacheLevel.BypassCache)
            {
                CacheProtocol = new RequestCacheProtocol(m_CacheBinding.Cache, m_CacheBinding.Validator.CreateValidator());
            }

            m_CachePolicy = policy;
        }