/// <summary>
        /// Matches the User-Agent setting the state without using a cache.
        /// </summary>
        /// <param name="targetUserAgent"></param>
        /// <param name="state"></param>
        internal void MatchNoCache(string targetUserAgent, MatchState state)
        {
            long startTickCount = 0;

            state.Reset(targetUserAgent);

            if (RecordDetectionTime)
            {
                startTickCount = DateTime.UtcNow.Ticks;
            }

            Controller.Match(state);

            if (RecordDetectionTime)
            {
                state.Elapsed = DateTime.UtcNow.Ticks - startTickCount;
            }

            // Update the counts for the provider.
            Interlocked.Increment(ref _detectionCount);
            lock (MethodCounts)
            {
                MethodCounts[state.Method]++;
            }
        }
 /// <summary>
 /// Resets the match instance ready for further matching.
 /// </summary>
 internal void Reset()
 {
     State.Reset();
     _overriddenProfiles           = null;
     _cookie                       = null;
     _propertyValueOverrideCookies = null;
 }
 /// <summary>
 /// Resets the match instance ready for further matching.
 /// </summary>
 internal void Reset()
 {
     State.Reset();
     _overriddenProfiles = null;
 }