---
title: Dependencies
summary: Packages, framework components, projects, and remote services this proxy depends on.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Dependencies

`Fax` depends on the WCF client framework to compile, on the external `SAIFFaxService` service to function at runtime, and on `SAIF.Services.WCF` — a library consumed as documented at [`SAIF.Services.Web.Proxies` overview](../../libraries/saif-services-web-proxies/overview.md) — as its in-repository caller.

## Internal dependencies

| Project | In this repository | Purpose | Usage |
| --- | --- | --- | --- |
| `SAIF.Services.Web.Proxies` | Yes | Owns the generated proxy and the `FaxServiceProxy` wrapper | Compiled into the proxy and wrapper that construct and invoke `FaxServiceSoapClient` |
| `SAIF.Services.WCF` | Yes | Consumes the wrapper through `FaxService`, and references `SAIF.Services.Web.Proxies` as a project reference | Constructs `FaxServiceProxy` and calls `SendFax` once per recipient |

## External dependencies

### Framework components

| Component | Assembly | Purpose | Usage |
| --- | --- | --- | --- |
| `System.ServiceModel` | `System.ServiceModel.dll` | Supplies `ClientBase<T>`, `BasicHttpBinding`, and `EndpointAddress` used by the generated proxy and the wrapper | Used at construction and invocation of `FaxServiceSoapClient` |
| `System.Xml` | `System.Xml.dll` | Supplies `XmlDictionaryReaderQuotas` used to raise `MaxArrayLength` in the wrapper's binding | Used when the wrapper builds its `BasicHttpBinding` |

### NuGet packages

This proxy requires no NuGet package; it depends only on framework assemblies.

### Assembly references outside the package system

No assembly is referenced outside the package system.

## Transitive dependencies

No transitive dependency is evidenced from source.

## Service dependencies

| Service | Endpoint | Documented by this run | Documentation | Operations used | Usage |
| --- | --- | --- | --- | --- | --- |
| `SAIFFaxService` | `http://websvcprod/webservices/SAIFFaxService/faxservice.asmx` | No | `SAIFFaxService`† | [`Send`](reference.md#send) | Called once per recipient to deliver a fax document |

## Configuration dependencies

| Setting | Source | Required at | Usage |
| --- | --- | --- | --- |
| `faxSoapServiceUrl` | `Services/SAIF.Services.WebApi/EnvironmentApi/App_Data/environments.xml` | First call | Resolved through `EnvironmentConfigKeys.FaxSoapServiceUrl`, a constant not defined in this repository's source*, and used to build the `EndpointAddress` passed to `FaxServiceProxy` |

## Dependency risks and notes

| Dependency | Risk | Impact if unavailable | Usage |
| --- | --- | --- | --- |
| `SAIFFaxService` | No retry, no timeout override, and no cancellation at either layer | Fax delivery for the affected recipient fails, and for a multi-recipient request, later recipients in the loop are never attempted | Called once per recipient by `FaxService.SendFax` |

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Contract](contract.md)
- [Operation map](operation-map.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence.

## Sources
- `Services/SAIF.Services.WCF/SAIF.Services.WCF.csproj`
- `Services/SAIF.Services.WebApi/EnvironmentApi/App_Data/environments.xml`
