Amazon.Lambda.Annotations: allow an alternate IServiceProvider implementation
- Vorherrschende Sprache
- C#
- Sterne
- 1.7k
- Forks
- 503
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 21
Beschreibung
### Describe the feature
Provide a way of using an inversion of control container other than the default Microsoft.Extensions.DependencyInjection.
### Use Case
I would like to be able to use Autofac with Amazon.Lambda.Annotations.
### Proposed Solution
A formal api around a Startup class would work, but it looks like a small tweak to the generated code may be sufficient to hook in an alternate IServiceProvider.
The serviceProvider is currently stored in a field defined like this:
`private readonly ServiceProvider serviceProvider;`
The field is using the concrete type _ServiceProvider_. If the field type were changed to _IServiceProvider_ that would allow a different _IServiceProvider_ to be used by implementing a _BuildServiceProvider_ extension method in the Lambda project.
```
public static AutofacServiceProvider BuildServiceProvider(this IServiceCollection services)
{
var builder = new ContainerBuilder();
builder.Populate(services);
return new AutofacServiceProvider(builder.Build());
}
```
### Other Information
_No response_
### Acknowledgements
- [ ] I may be able to implement this feature request
- [ ] This feature might incur a breaking change
### AWS .NET SDK and/or Package version used
Amazon.Lambda.Annotations 1.3.0
### Targeted .NET Platform
.Net 8
### Operating System and version
AmazonLinux
Beitragsleitfaden
Rechercherichtung
Beginne damit, den von Amazon.Lambda.Annotations generierten Code nachzuverfolgen, der das konkrete Feld serviceProvider und den im Issue beschriebenen Erweiterungspunkt BuildServiceProvider deklariert. Ermittle, ob das Ändern des Felds in IServiceProvider alternative Container ohne eine umfassendere Startup-API unterstützt, und überprüfe anschließend das Verhalten des generierten Codes für die angeforderte Autofac-Integration.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- aws, csharp
- Bereich
- backend, cloud
- Issue-Typ
- Feature
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 38/100