/// <summary> /// /// </summary> /// <param name="iStatus"></param> /// <param name="iCallerMemberName"></param> /// <param name="iCallerFilePath"></param> /// <param name="iCallerLineNumber"></param> public MemberInformation(EMemberStatus iStatus, [CallerMemberName] string iCallerMemberName = ConstString.Empty, [CallerFilePath] string iCallerFilePath = ConstString.Empty, [CallerLineNumber] int iCallerLineNumber = ConstNumberValue.Zero) { if (iStatus == EMemberStatus.Unknown) { throw new ArgumentException("iStatus == EMemberStatus.Unknown"); } else if (iStatus == EMemberStatus.HasException) { throw new ArgumentException("iStatus == EMemberStatus.HasException"); } _creationTime = TimeHelper.GetTimeNowByPreprocessor(); Status = iStatus; Name = iCallerMemberName; FilePath = iCallerFilePath; LineNumber = iCallerLineNumber; UniqueThreadID = ThreadLocalInformation.GetUniqueID(); UniqueMemberID = (UniqueThreadID ^ Name.GetHashCode() ^ FilePath.GetHashCode()); Exception = null; ExceptionStackTrace = ConstString.Empty; }
/// <summary> /// /// </summary> /// <param name="ioException"></param> /// <param name="iExceptionStackTrace"></param> /// <param name="iCallerMemberName"></param> /// <param name="iCallerFilePath"></param> /// <param name="iCallerLineNumber"></param> public MemberInformation(Exception ioException, string iExceptionStackTrace, [CallerMemberName] string iCallerMemberName = ConstString.Empty, [CallerFilePath] string iCallerFilePath = ConstString.Empty, [CallerLineNumber] int iCallerLineNumber = ConstNumberValue.Zero) { _creationTime = TimeHelper.GetTimeNowByPreprocessor(); Status = EMemberStatus.HasException; Name = iCallerMemberName; FilePath = iCallerFilePath; LineNumber = iCallerLineNumber; UniqueThreadID = ThreadLocalInformation.GetUniqueID(); UniqueMemberID = (UniqueThreadID ^ Name.GetHashCode() ^ FilePath.GetHashCode()); Exception = ioException; ExceptionStackTrace = iExceptionStackTrace; }