namespace Toolkit.Foundation; public class ServiceFactory(Func factory) : IServiceFactory { public TService Create(params object?[]? parameters) => (TService)factory(typeof(TService), parameters); public TService Create(Action serviceDelegate, params object?[]? parameters) { TService service = (TService)factory(typeof(TService), parameters); serviceDelegate.Invoke(service); return service; } public object Create(Type type, params object?[]? parameters) => factory(type, parameters); public object Create(Type type, Action serviceDelegate, params object?[]? parameters) { object service = factory(type, parameters); serviceDelegate.Invoke(service); return service; } }