# Microsoft.CSharp

**Kind:** Service

**Source:** `Pams/Logic/Pams.CurrencyConverter/Pams.CurrencyConverter.csproj` (line 1)

**Part of:** [Pams](subsystem-pams)

NuGet package dependency

The Microsoft.CSharp NuGet package is referenced by the `Pams.CurrencyConverter` legacy-format project file. It supplies C# runtime binder assemblies when currency converter code relies on dynamic C# binding.

## Diagram

```mermaid
flowchart TD
    Developer[Developer] --> Project[Pams.CurrencyConverter.csproj]
    Project --> Package[Microsoft.CSharp NuGet package]
    Package --> Binder[C# runtime binder]
    Binder --> Converter[Pams.CurrencyConverter]
```

## Usage

```ts
import { execFile } from "node:child_process";
import { promisify } from "node:util";

const run = promisify(execFile);

async function buildCurrencyConverter() {
  const project = "Pams/Logic/Pams.CurrencyConverter/Pams.CurrencyConverter.csproj";

  await run("dotnet", ["restore", project]);
  const { stdout } = await run("dotnet", ["build", project]);

  console.log(stdout);
}

buildCurrencyConverter().catch(console.error);
```

## AI Coding Instructions

- Keep the `Microsoft.CSharp` package reference in the project file when code depends on C# dynamic binding.
- Do not import this NuGet package from TypeScript or JavaScript; it is restored during the .NET build.
- Preserve the legacy project-file format when editing package references unless the project migration is planned.
- Run `dotnet restore` before building when package assets are missing.

## Used by

6 references from 6 files. Each is a place in this repository where the symbol is actually used — go read one rather than trusting an example.

### Injected or called by (6)

- `Pams.API` — `Pams/API/Pams.API/Pams.API.csproj`:1
- `Pams.Security` — `Pams/Core/Pams.Security/Pams.Security.csproj`:1
- `Pams.Data` — `Pams/Data/Pams.Data/Pams.Data.csproj`:1
- `HelperTool` — `Pams/HelperTool/HelperTool.csproj`:1
- `Pams.Business` — `Pams/Logic/Pams.Business/Pams.Business.csproj`:1
- `Pams.CurrencyConverter` — `Pams/Logic/Pams.CurrencyConverter/Pams.CurrencyConverter.csproj`:1
