---
title: SAIF.Framework.DNS dependencies
summary: Internal and external dependencies for this library.
status: draft
owner: <owner>
last_reviewed: 2026-07-23
library: SAIF.Framework.DNS
reference_type: package
---

# SAIF.Framework.DNS dependencies

SAIF.Framework.DNS has no internal (intra-repository) dependencies and no external NuGet package dependencies; it consumes only standard .NET Framework Base Class Library assemblies.

## Internal dependencies

None. `SAIF.BOF.Framework.DNS.csproj` has no `<ProjectReference>` elements. This library has no dependencies on other libraries in this repository and is not itself referenced by any other project in this repository*.

| Dependency | Type | Usage |
| --- | --- | --- |
| — | — | No internal dependencies found. |

## External dependencies

No NuGet package references (`packages.config` or `<PackageReference>`) exist for this project, and no `nuget.config` was found in this project folder. All references are .NET Framework BCL assemblies declared in the `.csproj` `<Reference>` items:

| Dependency | Version | Usage |
| --- | --- | --- |
| `System` | Framework-standard | Core types, exceptions |
| `System.Core` | Framework-standard | LINQ/extension support (declared, not directly observed in use in scanned code)* |
| `System.Xml.Linq` | Framework-standard | Declared reference; no direct usage observed in scanned code* |
| `System.Data.DataSetExtensions` | Framework-standard | Declared reference; no direct usage observed in scanned code* |
| `System.Data` | Framework-standard | Declared reference; no direct usage observed in scanned code* |
| `System.Xml` | Framework-standard | Declared reference; no direct usage observed in scanned code* |
| `System.Net`, `System.Net.Sockets` | Framework-standard | `IPAddress`, `IPEndPoint`, `Socket`, `SocketException`, `UdpClient` used for DNS UDP transport |
| `System.Collections` (`ArrayList`) | Framework-standard | Used throughout for growable collections |
| `System.Runtime.Serialization` | Framework-standard | `SerializationInfo`/`StreamingContext` for custom exception serialization constructors |
| `System.Text` (`StringBuilder`, `Encoding`) | Framework-standard | Domain-name decoding, ASCII encoding |
| `System.Text.RegularExpressions` | Framework-standard | Declared `using`; the actual `Regex.IsMatch` domain-validation call is commented out in `Question.cs` (dead code, excluded from analysis) |
| `System.IO` | Framework-standard | `IOException` thrown in the uncompiled `MXHelper.cs` |

## Dependency risks and notes
- This library targets .NET Framework v4.6.2 and has no internal or external package dependencies, so it carries no transitive dependency risk from other SAIF libraries or third-party packages*.
- Several declared BCL references (`System.Core`, `System.Xml.Linq`, `System.Data.DataSetExtensions`, `System.Data`, `System.Xml`) show no direct usage in the scanned source; they add assembly-load surface without observed functional benefit*.
- `MXHelper.cs` (namespace `SAIF.Framework.DNSLib`) is present in the project folder but excluded from the `.csproj` `<Compile>` list, so it is not part of the compiled assembly and introduces no runtime dependency risk. However, its source is still captured by the repository-wide packaging nuspec glob (`SAIF.Framework.Core\SAIF.BOF.Framework.Core.nuspec`, pattern `..\**\*.vb;..\**\*.cs`), meaning the dead/duplicate source (including its own independent `MXRecord` type and raw `UdpClient`-based DNS implementation) is bundled as loose source into the `SAIF.BOF.Framework` NuGet package even though it never executes. This is a packaging hygiene risk: consumers inspecting the packaged source could mistake `MXHelper` for an active, supported API*.
- The library is packaged as part of a single repository-wide NuGet pipeline (`Pipelines\build.yml`, `Pipelines\build-vars.yml`) via a broad nuspec glob rather than an explicit per-library package definition; there is no dedicated nuspec or package reference scoped to `SAIF.Framework.DNS` itself*.

> **Note:** Statements marked with * were inferred from code structure, naming conventions, or
> contextual evidence where direct confirmation was not available in source artifacts. Statements
> marked with ** could not be confirmed; treat as unknown until verified.

## Related documentation
- [Index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Operations and processes](operations-processes.md)
- [Business rules](business-rules.md)
- [Configuration](configuration.md)
- [API reference](api/index.md)

## Sources
- SAIF.Framework.DNS\SAIF.BOF.Framework.DNS.csproj
- SAIF.Framework.DNS\Resolver.cs
- SAIF.Framework.DNS\Question.cs
- SAIF.Framework.DNS\Pointer.cs
- SAIF.Framework.DNS\InvalidResponseException.cs
- SAIF.Framework.DNS\NoResponseException.cs
- SAIF.Framework.DNS\MXHelper.cs
- Pipelines\build.yml
- Pipelines\build-vars.yml
- SAIF.Framework.Core\SAIF.BOF.Framework.Core.nuspec
