필요시 추후 개요 작성



#r "nuget: Microsoft.Extensions.DependencyInjection, 9.0.3"
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;

static IServiceCollection TryAddTransientWithDependencies(this IServiceCollection sc, Type t)
{
    sc.TryAddTransient(t);
    foreach(var param in t.GetConstructors().Single().GetParameters())
        sc.TryAddTransientWithDependencies(param.ParameterType);
    return sc;
}

class Tr : IDisposable
{
    public Tr() => Console.WriteLine("New Transient");
    public void Dispose() => Console.WriteLine("Dispose Transient");
}
class Naratteu(Tr member1, Tr member2)
{
    public void Hello() => Console.WriteLine("Hello World!");

    readonly static IServiceProvider sp = new ServiceCollection()
        .TryAddTransientWithDependencies(typeof(Naratteu)).BuildServiceProvider();
    public static IDisposable UseTransient(out Naratteu n)
    {
        var scope = sp.CreateScope();
        n = scope.ServiceProvider.GetRequiredService<Naratteu>();
        return scope;
    }
}

using(Naratteu.UseTransient(out var n))
    n.Hello();


+2025-04-21

비슷한 스타일로 괜히 json 읽어내기 해보려다 파기



이런 경우의 수를 다 통제할수있을리는 없으므로 파기


?