using var container = new UnityContainer();
container.RegisterType<ServiceFactory>(TypeLifetime.Singleton);
var factory = container.Resolve<ServiceFactory>();
var s1 = factory.CreateService();
if (s1 is IDisposable d) d.Dispose();
class Service : IService, IDisposable
public void DoSomething() => Console.WriteLine("Service.DoSomething()");
public void Dispose() => Console.WriteLine("Service.Dispose()");
public IService CreateService() => new Service();