Class ValidationIssue
Represents a single validation issue found while reading or validating a PST file.
Inherited Members
Namespace: DRIT.Mail.Pst.Validation
Assembly: DRIT.Mail.dll
Syntax
public class ValidationIssue
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
Constructors
View SourceValidationIssue()
Initializes a new instance of ValidationIssue.
Declaration
public ValidationIssue()
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
ValidationIssue(ValidationSeverity, string, string, string)
Initializes a new instance of ValidationIssue with the specified severity, layer, component, and message.
Declaration
public ValidationIssue(ValidationSeverity severity, string layer, string component, string message)
Parameters
| Type | Name | Description |
|---|---|---|
| ValidationSeverity | severity | The severity of the issue. |
| string | layer | The PST layer where the issue was detected (e.g. "NDB", "LTP", "PhysicalLayout"). |
| string | component | The specific component that detected the issue (e.g. "HeapOnNodeBlock", "BTreeOnHeap"). |
| string | message | A human-readable description of the issue. |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
Properties
View SourceComponent
Gets or sets the specific component that detected the issue. Example: "HeapOnNodeBlock", "BTreeOnHeapReaderWriter", "CrcValidator".
Declaration
public string Component { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
Exception
Gets or sets the exception that triggered this issue, if the issue was created from a caught exception. null when no exception is involved.
Declaration
public Exception Exception { get; set; }
Property Value
| Type | Description |
|---|---|
| Exception |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
IsRepairable
Gets a value indicating whether this issue has an associated repair action.
Declaration
public bool IsRepairable { get; }
Property Value
| Type | Description |
|---|---|
| bool |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
Layer
Gets or sets the PST layer where the issue was detected. Common values: "NDB", "LTP", "PhysicalLayout", "MessagingLayer", "Folders", "TNEF".
Declaration
public string Layer { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
Message
Gets or sets a human-readable description of the issue.
Declaration
public string Message { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
NodeId
Gets or sets the node or block identifier (NID or BID) associated with the issue, if known. null when no identifier is applicable.
Declaration
public long? NodeId { get; set; }
Property Value
| Type | Description |
|---|---|
| long? |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
Offset
Gets or sets the byte offset in the PST file where the issue was detected, if known. null when the offset is not applicable or unknown.
Declaration
public long? Offset { get; set; }
Property Value
| Type | Description |
|---|---|
| long? |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
RepairAction
Gets or sets a repair action that can fix this issue, if one is available.
null when no repair is possible.
Declaration
public Action<ValidationIssue> RepairAction { get; set; }
Property Value
| Type | Description |
|---|---|
| Action<ValidationIssue> |
Remarks
Repair actions are populated by read-path code that detects a specific
corruption and knows how to fix it (e.g. recomputing a bad ibHnpm
from the actual allocation table). The PstRepair class
iterates all issues with a non-null RepairAction and applies
them.
Severity
Gets or sets the severity of this issue.
Declaration
public ValidationSeverity Severity { get; set; }
Property Value
| Type | Description |
|---|---|
| ValidationSeverity |
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.
Methods
View SourceToString()
Returns a string representation of this issue, including severity, layer, component, and message.
Declaration
public override string ToString()
Returns
| Type | Description |
|---|---|
| string |
Overrides
Remarks
Issues are collected into ValidationResults rather than thrown as exceptions, so that a full corruption report can be assembled in a single read pass. Each issue records the layer, component, and optional file offset / node ID where the problem was detected, enabling both user-facing reports and future repair logic.