using Example.Backend; using Example.Shared; using mROA.Implementation; using mROA.Implementation.Attributes; namespace Example.Backend; [SharedObjectSingleton] public class PrinterFactory : IPrinterFactory { private List _printers = new(); public SharedObject Create(string printerName) { return new Printer { Name = printerName }; } public void Register(SharedObject printer) { _printers.Add(printer.Value); } public SharedObject GetPrinterByName(string printerName) { return new SharedObject(_printers.Find(i => i.GetName() == printerName)!); } }