Exemple #1
0
        /// <summary>
        /// Clones the event signature.
        /// </summary>
        /// <returns>Cloned copy of the event signature.</returns>
        public object Clone()
        {
            StackHashParameterCollection parameterCollection = new StackHashParameterCollection();

            if (m_Parameters == null)
            {
                m_Parameters = new StackHashParameterCollection();
            }

            foreach (StackHashParameter parameter in m_Parameters)
            {
                parameterCollection.Add(parameter.Clone() as StackHashParameter);
            }
            StackHashEventSignature eventSignature = new StackHashEventSignature(parameterCollection);

            eventSignature.ApplicationName      = m_ApplicationName;
            eventSignature.ApplicationTimeStamp = m_ApplicationTimeStamp;
            eventSignature.ApplicationVersion   = m_ApplicationVersion;
            eventSignature.ExceptionCode        = m_ExceptionCode;
            eventSignature.ModuleName           = m_ModuleName;
            eventSignature.ModuleTimeStamp      = m_ModuleTimeStamp;
            eventSignature.ModuleVersion        = m_ModuleVersion;
            eventSignature.Offset = m_Offset;

            return(eventSignature);
        }
Exemple #2
0
        public int CompareTo(object obj)
        {
            StackHashParameterCollection parameters = obj as StackHashParameterCollection;

            if (parameters.Count != this.Count)
            {
                return(-1);
            }

            foreach (StackHashParameter thisParam in this)
            {
                StackHashParameter matchingParam = parameters.FindParameter(thisParam.Name);

                if (matchingParam == null)
                {
                    return(-1);
                }

                if ((matchingParam.Name == StackHashEventSignature.ParamApplicationTimeStamp) ||
                    (matchingParam.Name == StackHashEventSignature.ParamModuleTimeStamp))
                {
                    // Timestamps might be in a different format.
                    DateTime matchingTimeStamp = DateTime.Parse(matchingParam.Value, CultureInfo.InvariantCulture);
                    DateTime thisTimeStamp     = DateTime.Parse(thisParam.Value, CultureInfo.InvariantCulture);

                    if (matchingTimeStamp != thisTimeStamp)
                    {
                        return(-1);
                    }
                }
                else
                {
                    if (matchingParam.CompareTo(thisParam) != 0)
                    {
                        return(-1);
                    }
                }
            }

            // Must be a match.
            return(0);
        }
Exemple #3
0
 public StackHashEventSignature(StackHashParameterCollection parameters)
 {
     m_Parameters = parameters;
     InterpretParameters();
 }