https://github.com/pmikstacki/bdziam.externaldependencyresolver
Small and Simple Extension of Default Microsoft Dependency Injection to add support for Instantiating external Services using IServiceProvider
https://github.com/pmikstacki/bdziam.externaldependencyresolver
Last synced: 4 months ago
JSON representation
Small and Simple Extension of Default Microsoft Dependency Injection to add support for Instantiating external Services using IServiceProvider
- Host: GitHub
- URL: https://github.com/pmikstacki/bdziam.externaldependencyresolver
- Owner: pmikstacki
- License: mpl-2.0
- Created: 2025-01-08T17:18:38.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-08T18:38:21.000Z (over 1 year ago)
- Last Synced: 2026-01-15T12:41:21.222Z (5 months ago)
- Language: C#
- Size: 46.9 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bdziam.ExternalDependencyResolver
Bdziam.ExternalDependencyResolver is a C# library that provides a mechanism to resolve dependencies for a given type using a combination of a service provider and additional dependencies.
## Features
- Resolves dependencies using a service provider.
- Supports additional dependencies.
- Allows overriding dependencies with additional ones.
## Installation
To install Bdziam.ExternalDependencyResolver, add the following package to your project:
```bash
dotnet add package Bdziam.ExternalDependencyResolver
```
## Usage
### Registering the Resolver
To register the `ExternalDependencyResolver` in your `IServiceCollection`, use the `AddExternalDependencyResolver` extension method:
```csharp
using Microsoft.Extensions.DependencyInjection;
using Bdziam.ExternalDependencyResolver;
var services = new ServiceCollection();
services.AddExternalDependencyResolver();
```
You can also provide a custom `IServiceProvider`:
```csharp
var customServiceProvider = new ServiceCollection().BuildServiceProvider();
services.AddExternalDependencyResolver(customServiceProvider);
```
### Resolving Dependencies
To resolve dependencies, use the `ExternalDependencyResolver` class:
```csharp
using Bdziam.ExternalDependencyResolver;
using System;
using System.Collections.Generic;
var serviceProvider = new ServiceCollection().BuildServiceProvider();
var resolver = new ExternalDependencyResolver(serviceProvider);
var instance = resolver.Resolve();
```
You can also provide additional dependencies and override existing ones:
```csharp
var additionalDependencies = new KeyValuePair[]
{
new KeyValuePair(typeof(IMyDependency), new MyDependency())
};
var instance = resolver.Resolve(true, additionalDependencies);
```
## Testing
The project includes unit tests using xUnit and Moq. To run the tests, use the following command:
```bash
dotnet test
```
## Contributing
Contributions are welcome! Please open an issue or submit a pull request.
## License
This project is licensed under the MPL License. See the `LICENSE` file for details.