/// <summary>
        /// Used by non web apps to define transactions in code that are turned in to operations to be tracked in Stackify APM or Prefix
        /// </summary>
        /// <param name="operationName"></param>
        /// <param name="uniqueOperationID"></param>
        /// <returns></returns>
        public static ProfileTracer CreateAsOperation(string operationName, string uniqueOperationID = null)
        {
#if NET45 || NETSTANDARD1_3
            if (_etwEventListener == null)
            {
                _etwEventListener = new EtwEventListener();
            }
#endif
            ProfileTracer tracer = new ProfileTracer(operationName, null, null);
            tracer.IsOperation = true;

            if (!string.IsNullOrEmpty(uniqueOperationID))
            {
                tracer._RequestID = uniqueOperationID;
            }

            return(tracer);
        }
        /// <summary>
        /// Used by non web apps to define transactions in code that are turned in to operations to be tracked in Stackify APM or Prefix
        /// </summary>
        /// <param name="operationName"></param>
        /// <param name="uniqueOperationID"></param>
        /// <returns></returns>
        public static ProfileTracer CreateAsOperation(string operationName, string uniqueOperationID = null)
        {
#if NETFULL
#if !NET40
            if (_etwEventListener == null)
            {
                _etwEventListener = new EtwEventListener();
            }
#endif
#endif

            var tracer = new ProfileTracer(operationName, null, null);
            tracer.IsOperation = true;

            if (string.IsNullOrEmpty(uniqueOperationID) == false)
            {
                tracer._requestId = uniqueOperationID;
            }

            return(tracer);
        }