• DR-IT Software
  • Products
  • Documentation
  • Product page
  • Examples
  • API reference
  • Support
Show / Hide Table of Contents

Class ValidationIssue

Represents a single validation issue found while reading or validating a PST file.

Inheritance
object
ValidationIssue
Inherited Members
object.Equals(object)
object.Equals(object, object)
object.ReferenceEquals(object, object)
object.GetHashCode()
object.GetType()
object.MemberwiseClone()
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 Source

ValidationIssue()

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.

View Source

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 Source

Component

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.

View Source

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.

View Source

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.

View Source

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.

View Source

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.

View Source

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.

View Source

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.

View Source

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.

View Source

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 Source

ToString()

Returns a string representation of this issue, including severity, layer, component, and message.

Declaration
public override string ToString()
Returns
Type Description
string
Overrides
object.ToString()
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.

  • View Source
Back to top

DR-IT Software documentation

DR-IT Software · Products · Documentation index · Product page · Downloads · Support · Licensing

Generated by DocFX