public void Bootstrap(IServiceCollection serviceCollection) { serviceCollection.AddSingleton <IPacketFactory, PacketFactory>(); serviceCollection.AddSingleton <ISentenceListener, NMEASentenceListener>(); serviceCollection.AddSingleton <ISentenceProcessor, NMEASentenceProcessor>(); var vesselCollection = new VesselCollection(); serviceCollection.AddSingleton <VesselCollection>(vesselCollection); serviceCollection.AddTransient <IReadOnlyVesselCollection, VesselCollection>((serviceProvider) => vesselCollection); }
public NMEASentenceProcessor( IPacketFactory packetFactory, ISentenceListener sentenceListener, ParserConfiguration parserConfiguration, VesselCollection vesselCollection) { _packetFactory = packetFactory; _listener = sentenceListener; _configuration = parserConfiguration; _vessels = vesselCollection; _listener.OnSentenceReceived += _listener_OnSentenceReceived; }