seen lots of questions about it without an answer but how do you use DI in a class library using Castle Windsor? People online are saying it's a bad thing/ 'Smell' but how else do you avoid concrete implementations and write unit tests please? I have an example below using NUnit and NSubstitute.
Any help much appreciated.
Many thanks,
Feature code
public class PassengerService
{
    private IPassengerRepository _passengerRepository;
    public PassengerService(IPassengerRepository passengerRepository)
    {
        _passengerRepository = passengerRepository;
    } 
}
Unit test
public class PassengerServiceTests
{
    private PassengerService _passengerService;
    private IPassengerRepository _passengerRepository;
    [SetUp]
    public void Setup()
    {
        _passengerRepository = Substitute.For<IPassengerRepository>();
        _passengerService = new PassengerService(_passengerRepository);
    }
    [Test]
    public void Example_Test()
    {
        var p = _passenger.GetPassenger(Arg.Any<int>());
        // Assert
        _passengerRepository.Receive(1).Get(...);
    }
}
Update
Class libraries don't have a Global.asax file as far as I'm aware so I'm not sure where to write the following Castle Windsor component registrations, i.e.
Registration
container.Register(Component.For<IPassengerRepository>().ImplementedBy<PassengerRepository>().LifestyleTransient());
