Testably.Abstractions.MemoryMappedFiles
7.0.1
Prefix Reserved
dotnet add package Testably.Abstractions.MemoryMappedFiles --version 7.0.1
NuGet\Install-Package Testably.Abstractions.MemoryMappedFiles -Version 7.0.1
<PackageReference Include="Testably.Abstractions.MemoryMappedFiles" Version="7.0.1" />
<PackageVersion Include="Testably.Abstractions.MemoryMappedFiles" Version="7.0.1" />
<PackageReference Include="Testably.Abstractions.MemoryMappedFiles" />
paket add Testably.Abstractions.MemoryMappedFiles --version 7.0.1
#r "nuget: Testably.Abstractions.MemoryMappedFiles, 7.0.1"
#:package Testably.Abstractions.MemoryMappedFiles@7.0.1
#addin nuget:?package=Testably.Abstractions.MemoryMappedFiles&version=7.0.1
#tool nuget:?package=Testably.Abstractions.MemoryMappedFiles&version=7.0.1
Testably.Abstractions.MemoryMappedFiles
Memory-mapped file extensions for Testably.Abstractions - adds the methods from System.IO.MemoryMappedFiles.MemoryMappedFile to IFileSystem, so memory-mapped-file code can be tested against the in-memory MockFileSystem.
dotnet add package Testably.Abstractions.MemoryMappedFiles
IFileSystem fileSystem; // injected
using IMemoryMappedFile mappedFile = fileSystem.MemoryMappedFile
.CreateFromFile("data.bin");
using IMemoryMappedViewAccessor accessor = mappedFile.CreateViewAccessor();
accessor.Write(0, 42);
int value = accessor.ReadInt32(0);
The abstraction is exposed as the extension property fileSystem.MemoryMappedFile (note: no ()), returning an IMemoryMappedFileFactory. On RealFileSystem every call forwards to the underlying base class library (BCL) implementation; on MockFileSystem the views are built directly over the in-memory file bytes.
Some parts of the BCL surface are intentionally not abstracted, because they have no meaningful in-memory equivalent:
CreateNew,CreateOrOpenandOpenExistingoperate on operating-system shared memory (named or anonymous) rather than a file. They forward normally onRealFileSystem, but throwNotSupportedExceptiononMockFileSystem.- The
SafeMemoryMappedFileHandle/SafeMemoryMappedViewHandlehandle and pointer APIs, as well as theSafeFileHandle-basedCreateFromFileoverload, are not exposed at all (mirroring how theSafeFileHandle-basedFileStreamconstruction is excluded elsewhere).
On MockFileSystem the reads and writes, their capacity handling and the thrown exceptions mirror the real MemoryMappedViewAccessor / MemoryMappedViewStream. Two details tied to operating-system memory mapping are intentionally simplified: a view created without an explicit size has a Capacity of exactly the remaining bytes (the real file system rounds up to the system page size), and PointerOffset is always 0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 is compatible. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.Memory (>= 10.0.9)
- Testably.Abstractions.Interface (>= 10.3.0 && < 10.4.0)
-
.NETStandard 2.1
- Microsoft.Bcl.Memory (>= 10.0.9)
- Testably.Abstractions.Interface (>= 10.3.0 && < 10.4.0)
-
net10.0
- Testably.Abstractions.Interface (>= 10.3.0 && < 10.4.0)
-
net6.0
- Testably.Abstractions.Interface (>= 10.3.0 && < 10.4.0)
-
net8.0
- Microsoft.Bcl.Memory (>= 10.0.9)
- Testably.Abstractions.Interface (>= 10.3.0 && < 10.4.0)
-
net9.0
- Microsoft.Bcl.Memory (>= 10.0.9)
- Testably.Abstractions.Interface (>= 10.3.0 && < 10.4.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 7.0.1 | 38 | 7/14/2026 |
| 7.0.0 | 54 | 7/13/2026 |
| 7.0.0-pre.2 | 51 | 7/13/2026 |