private void InitializeErrorRecordCore(CimJobContext jobContext, Exception exception, string errorId, ErrorCategory errorCategory) { ErrorRecord coreErrorRecord = new ErrorRecord( exception: exception, errorId: errorId, errorCategory: errorCategory, targetObject: jobContext != null ? jobContext.TargetObject : null); if (jobContext != null) { System.Management.Automation.Remoting.OriginInfo originInfo = new System.Management.Automation.Remoting.OriginInfo( jobContext.Session.ComputerName, Guid.Empty); _errorRecord = new System.Management.Automation.Runspaces.RemotingErrorRecord( coreErrorRecord, originInfo); _errorRecord.SetInvocationInfo(jobContext.CmdletInvocationInfo); _errorRecord.PreserveInvocationInfoOnce = true; } else { _errorRecord = coreErrorRecord; } }
/// <summary> /// Create <see cref="ErrorRecord"/> from <see cref="Exception"/> object. /// </summary> /// <param name="context"></param> /// <param name="exception"></param> /// <param name="errorId"></param> /// <param name="errorCategory"></param> /// <param name="cimResultContext">The CimResultContext used to provide ErrorSource, etc. info.</param> /// <returns></returns> internal static ErrorRecord InitializeErrorRecordCore( InvocationContext context, Exception exception, string errorId, ErrorCategory errorCategory, CimResultContext cimResultContext) { object theTargetObject = null; if (cimResultContext != null) { theTargetObject = cimResultContext.ErrorSource; } if (theTargetObject == null) { if (context != null) { if (context.TargetCimInstance != null) { theTargetObject = context.TargetCimInstance; } } } ErrorRecord coreErrorRecord = new ErrorRecord( exception: exception, errorId: errorId, errorCategory: errorCategory, targetObject: theTargetObject); if (context == null) { return(coreErrorRecord); } System.Management.Automation.Remoting.OriginInfo originInfo = new System.Management.Automation.Remoting.OriginInfo( context.ComputerName, Guid.Empty); ErrorRecord errorRecord = new System.Management.Automation.Runspaces.RemotingErrorRecord( coreErrorRecord, originInfo); DebugHelper.WriteLogEx("Created RemotingErrorRecord.", 0); return(errorRecord); }
/// <summary> /// Create <see cref="ErrorRecord"/> from <see cref="Exception"/> object. /// </summary> /// <param name="context"></param> /// <param name="exception"></param> /// <param name="errorId"></param> /// <param name="errorCategory"></param> /// <param name="cimResultContext">the CimResultContext used to provide ErrorSource, etc. info.</param> /// <returns></returns> internal static ErrorRecord InitializeErrorRecordCore( InvocationContext context, Exception exception, string errorId, ErrorCategory errorCategory, CimResultContext cimResultContext) { object theTargetObject = null; if (cimResultContext != null) { theTargetObject = cimResultContext.ErrorSource; } if (theTargetObject == null) { if (context != null) { if (context.TargetCimInstance != null) { theTargetObject = context.TargetCimInstance; } } } ErrorRecord coreErrorRecord = new ErrorRecord( exception: exception, errorId: errorId, errorCategory: errorCategory, targetObject: theTargetObject); if (context == null) { return coreErrorRecord; } System.Management.Automation.Remoting.OriginInfo originInfo = new System.Management.Automation.Remoting.OriginInfo( context.ComputerName, Guid.Empty); ErrorRecord errorRecord = new System.Management.Automation.Runspaces.RemotingErrorRecord( coreErrorRecord, originInfo); DebugHelper.WriteLogEx("Created RemotingErrorRecord.", 0); // errorRecord.SetInvocationInfo(jobContext.CmdletInvocationInfo); // errorRecord.PreserveInvocationInfoOnce = true; return errorRecord; }