public ResourceContentProvider( IAssemblyProvider resourceAssemblyProvider, IStackTraceProvider stackTraceProvider, IMethodDetailsFilter methodDetailsFilter) { _methodDetailsFilter = methodDetailsFilter ?? throw new ArgumentNullException(nameof(methodDetailsFilter)); _resourceAssemblyProvider = resourceAssemblyProvider ?? throw new ArgumentNullException(nameof(resourceAssemblyProvider)); _stackTraceProvider = stackTraceProvider ?? throw new ArgumentNullException(nameof(stackTraceProvider)); }
/// <summary> /// Creates a new IssueReportService with the default report backends (github and soon email) /// </summary> /// <param name="configuration"></param> /// <param name="stackTraceProvider"></param> public IssueReportService(IPropertyProvider configuration, IStackTraceProvider stackTraceProvider) { if (configuration == null) throw new ArgumentNullException("configuration"); _stackTraceProvider = stackTraceProvider; ActiveBackend = configuration.GetProperty("locco.backend"); RegisterKnownProviders(configuration); }
/// <summary> /// Get trace stack. /// </summary> /// <param name="skipFrames">Number of stack frames to skip.</param> /// <returns>String representation of the stack trace.</returns> private static string GetStackTrace(int skipFrames) { try { IStackTraceProvider stackTraceProvider = StackTraceProvider.Current; if (stackTraceProvider != null) { return(StackTraceProvider.Current.GetStackTrace(skipFrames)); } } catch { } return(string.Empty); }