using var container = new UnityContainer();
container.RegisterType<IService, Service>();
var s1 = container.Resolve<IService>();
if (s1 is IDisposable d) d.Dispose();
abstract class ServiceWrapper : IService, IDisposable
public virtual void DoSomething() => throw new NotImplementedException();
public void Dispose() => Console.WriteLine("ServiceWrapper.Dispose()");
class Service : ServiceWrapper
public override void DoSomething() => Console.WriteLine("Service.DoSomething()");