ByteGuard.FileValidator.Extensions.DependencyInjection
10.1.0
Prefix Reserved
dotnet add package ByteGuard.FileValidator.Extensions.DependencyInjection --version 10.1.0
NuGet\Install-Package ByteGuard.FileValidator.Extensions.DependencyInjection -Version 10.1.0
<PackageReference Include="ByteGuard.FileValidator.Extensions.DependencyInjection" Version="10.1.0" />
<PackageVersion Include="ByteGuard.FileValidator.Extensions.DependencyInjection" Version="10.1.0" />
<PackageReference Include="ByteGuard.FileValidator.Extensions.DependencyInjection" />
paket add ByteGuard.FileValidator.Extensions.DependencyInjection --version 10.1.0
#r "nuget: ByteGuard.FileValidator.Extensions.DependencyInjection, 10.1.0"
#:package ByteGuard.FileValidator.Extensions.DependencyInjection@10.1.0
#addin nuget:?package=ByteGuard.FileValidator.Extensions.DependencyInjection&version=10.1.0
#tool nuget:?package=ByteGuard.FileValidator.Extensions.DependencyInjection&version=10.1.0
ByteGuard.FileValidator.Extensions.DependencyInjection 
ByteGuard.FileValidator.Extensions.DependencyInjection provides first-class integration of ByteGuard.FileValidator with Microsoft.Extensions.DependencyInjection.
It gives you:
- Extension methods to register the file validator in the DI container
- Easy configuration via
appsettings.jsonor fluent configuration in code
This package is the
Microsoft.Extensions.DependencyInjectionintegration layer. The core validation logic lives inByteGuard.FileValidator.
Getting Started
Installation
This package is published and installed via NuGet.
Reference the package in your project:
dotnet add package ByteGuard.FileValidator.Extensions.DependencyInjection
Usage
Add to DI container
In your Program.cs (or Startup.cs in older projects), register the validator:
Using inline configuration
builder.Services.AddFileValidator(options =>
{
options.AllowFileTypes(FileExtensions.Pdf, FileExtensions.Jpg, FileExtensions.Png);
options.FileSizeLimit = ByteSize.MegaBytes(25);
options.ThrowOnInvalidFiles(false);
// If an antimalware package has been added
options.Scanner = ScannerRegistration.Create<ScannerImplementation, ScannerImplementationOptions>(opts =>
{
// Refer to the individual scanner implementations for ScannerType value and possible options.
// ...
})
});
Using configuration from appsettings.json with default "FileValidator" section name
builder.Services.AddFileValidator(builder.Configuration);
Using configuration from appsettings.json with custom section name
builder.Services.AddFileValidator(builder.Configuration, "MySection");
Injection & Usage
You can then inject FileValidator into your services and other classes.
public class MyService
{
private readonly FileValidator _fileValidator;
public MyService(FileValidator fileValidator)
{
_fileValidator = fileValidator;
}
public bool SaveFile(Stream fileStream, string fileName)
{
var isValid = _fileValidator.IsValidFile(fileName, fileStream);
// ...
}
}
Configuration via appsettings
It's possible to configure the FileValidator through appsettings.json.
ℹ️ As you'll notice below, you can either define the
FileSizeLimitin raw byte size, or use theUnitFileSizeLimitto define the file size in a more human readable format. When both are defined,FileSizeLimitalways wins overUnitFileSizeLimit.
{
"FileValidatorConfiguration": {
"SupportedFileTypes": [ ".pdf", ".jpg", ".png" ],
"FileSizeLimit": 26214400,
"UnitFileSizeLimit": "25MB",
"ThrowExceptionOnInvalidFile": true
}
}
With antimalware scanner
It's possible to configure an antimalware scanner directly through appsettings.json.
ℹ️ Refer to the individual scanner implementations for
ScannerTypevalue and possible options.
{
"FileValidatorConfiguration": {
"SupportedFileTypes": [ ".pdf", ".jpg", ".png" ],
"FileSizeLimit": 26214400,
"UnitFileSizeLimit": "25MB",
"ThrowExceptionOnInvalidFile": true,
"Scanner": {
"ScannerType": "...",
"Options": {
"OptionA": "...",
"OptionB": "..."
}
}
}
}
License
ByteGuard.FileValidator.Extensions.DpendencyInjection is Copyright © ByteGuard Contributors - Provided under the MIT license.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- ByteGuard.FileValidator (>= 1.1.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
-
net8.0
- ByteGuard.FileValidator (>= 1.1.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.0)
-
net9.0
- ByteGuard.FileValidator (>= 1.1.0)
- Microsoft.Extensions.Configuration (>= 10.0.0)
- Microsoft.Extensions.Configuration.Binder (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Options (>= 10.0.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 |
|---|---|---|
| 10.1.0 | 564 | 12/1/2025 |
| 10.0.0 | 108 | 11/29/2025 |
| 10.0.0-dev-01003 | 103 | 11/29/2025 |
| 10.0.0-dev-01002 | 104 | 11/29/2025 |