Как я могу вытаскивать объекты из контейнера, которые являются временными по своей природе? Нужно ли регистрировать их в контейнере и вводить в конструктор требуемого класса? Внедрение всего в конструктор не очень хорошо. Также для одного класса я не хочу создавать TypedFactory и вставлять factory в необходимый класс.
Другая мысль, которая пришла ко мне, была "новой" на нужной основе. Но я также вставляю компонент Logger (через свойство) во все мои классы. Поэтому, если я их обновляю, мне придется вручную создать экземпляр Logger в этих классах. Как я могу продолжать использовать контейнер для ВСЕХ моих классов?
  Ввод логгера:. Большинство моих классов имеют свойство Logger, за исключением случаев, когда существует цепочка наследования (в этом случае только этот базовый класс имеет это свойство, и все классы-получатели используют это). Когда они создаются через контейнер Windsor, они получат мою реализацию ILogger, введенную в них.
//Install QueueMonitor as Singleton
Container.Register(Component.For<QueueMonitor>().LifestyleSingleton());
//Install DataProcessor as Trnsient
Container.Register(Component.For<DataProcessor>().LifestyleTransient());
Container.Register(Component.For<Data>().LifestyleScoped());
public class QueueMonitor
{
    private dataProcessor;
    public ILogger Logger { get; set; }
    public void OnDataReceived(Data data)
    {
        //pull the dataProcessor from factory    
        dataProcessor.ProcessData(data);
    }
}
public class DataProcessor
{
    public ILogger Logger { get; set; }
    public Record[] ProcessData(Data data)
    {
        //Data can have multiple Records
        //Loop through the data and create new set of Records
        //Is this the correct way to create new records?
        //How do I use container here and avoid "new" 
        Record record = new Record(/*using the data */);
        ...
        //return a list of Records    
    }
}
public class Record
{
    public ILogger Logger { get; set; }
    private _recordNumber;
    private _recordOwner;
    public string GetDescription()
    {
        Logger.LogDebug("log something");
        // return the custom description
    }
}
Вопросы:
-  
Как создать новый объект
Recordбез использования "нового"? -  
QueueMonitorSingleton, тогда какData- "Область". Как я могу вставитьDataв методOnDataReceived()?