Open
Description
In 3.0 we rewrote the code generation logic in the DI container to make it resillent to stack overflows for deep object graphs. As a result of this change, what would previously result in a stackoverflow exception for lazily resolved circular references now results in an infinite recursion. We're missing a number of stacks maximum. a deadlock.
using System;
using Microsoft.Extensions.DependencyInjection;
namespace WebApplication315
{
public class Program
{
public static void Main(string[] args)
{
var services = new ServiceCollection();
services.AddSingleton<Foo>();
var serviceProvider = services.BuildServiceProvider();
var foo = serviceProvider.GetService<Foo>();
}
}
public class Foo
{
public Foo(IServiceProvider serviceProvider)
{
serviceProvider.GetService<Foo>();
}
}
}
Activity