LightInject.Microsoft.DependencyInjection icon indicating copy to clipboard operation
LightInject.Microsoft.DependencyInjection copied to clipboard

Access to ImplementationFactory Throws if KeyedService

Open Mike-E-angelo opened this issue 6 months ago • 0 comments

Greetings out there @seesharper I hope this finds you well. 👋

There appears to be an issue when LightInject creates a provider that has keyed services. It's a little tricky because this appears to be a framework issue that is addressed in .NET9 and has a fix on the way with .NET8. However, it is unclear how long it will be before this is released so I am reporting it here to see if it might be possible to address it sooner. 😁

I originally reported this issue here: https://github.com/dotnet/extensions/issues/5376

(You can follow the steps to reproduce)

The fix there worked, but upon incorporating Redis support in my Aspire application, I ran into it again with the Aspire hosting assembly Aspire.StackExchange.Redis.OutputCaching. As I am getting the sense there will be more assemblies on the way before the .NET8 fix I am reaching out here to see if we can get a hot/quick fix even if it's on a preview build.

The issue appears to happen here: https://github.com/seesharper/LightInject.Microsoft.DependencyInjection/blob/master/src/LightInject.Microsoft.DependencyInjection/LightInject.Microsoft.DependencyInjection.cs#L146

Access to ImplementationFactory when the service descriptor has a key will result in an exception.

Please let me know if you have any questions around this and I will assist. 👍

Mike-E-angelo avatar Aug 28 '24 08:08 Mike-E-angelo