In the concrete class that need the service, use the interface to access the service instead of its implementation like:
public class BenefitAppService
{
private readonly IBenefitService _service;
public BenefitAppService(IBenefitService service)
{
_service = service;
}
public void Update(Benefit benefit)
{
if (benefit == null) return
_service.Update(benefit);
_service.Complete();
}
}
Now if you need something in the concrete class, won't interfere in the the code above. You may change the service implementation for another completely difference, and as long its satisfies the interface you are good to go. Also it makes it very easy to test it.