diff --git a/Example.Backend/Printer.cs b/Example.Backend/Printer.cs index a5ba4ac..242b174 100644 --- a/Example.Backend/Printer.cs +++ b/Example.Backend/Printer.cs @@ -14,7 +14,7 @@ namespace Example.Backend return Name; } - public async Task> Print(string text, CancellationToken cancellationToken = default) + public async Task Print(string text, CancellationToken cancellationToken = default) { // throw new Exception("The method or operation is not implemented."); return new Page {Text = text}; diff --git a/Example.Backend/PrinterFactory.cs b/Example.Backend/PrinterFactory.cs index 697b2e4..1fc2624 100644 --- a/Example.Backend/PrinterFactory.cs +++ b/Example.Backend/PrinterFactory.cs @@ -12,27 +12,27 @@ namespace Example.Backend { private List _printers = new List(); - public SharedObject Create(string printerName) + public IPrinter Create(string printerName) { Console.WriteLine("Creating printer"); return new Printer { Name = printerName }; } - public void Register(SharedObject printer) + public void Register(IPrinter printer) { - _printers.Add(printer.Value); + _printers.Add(printer); Console.WriteLine("Registered printer"); } - public SharedObject GetPrinterByName(string printerName) + public IPrinter GetPrinterByName(string printerName) { Console.WriteLine("Getting printer"); - return new SharedObject(_printers.Find(i => i.GetName() == printerName)!); + return (_printers.Find(i => i.GetName() == printerName)!); } - public SharedObject GetFirstPrinter() + public IPrinter GetFirstPrinter() { - return new SharedObject(_printers.First()); + return _printers.First(); } public string[] CollectAllNames() diff --git a/Example.Frontend/ClientBasedPrinter.cs b/Example.Frontend/ClientBasedPrinter.cs index 00b1984..b449a6d 100644 --- a/Example.Frontend/ClientBasedPrinter.cs +++ b/Example.Frontend/ClientBasedPrinter.cs @@ -14,7 +14,7 @@ namespace Example.Frontend return "ClientBasedPrinter from mroa"; } - public async Task> Print(string text, CancellationToken cancellationToken) + public async Task Print(string text, CancellationToken cancellationToken) { Console.WriteLine($"Printed: {text}"); await Task.Yield(); diff --git a/Example.Frontend/Program.cs b/Example.Frontend/Program.cs index 93e5c81..6eb9181 100644 --- a/Example.Frontend/Program.cs +++ b/Example.Frontend/Program.cs @@ -46,8 +46,7 @@ class Program var factory = context.GetSingleObject(typeof(IPrinterFactory)) as IPrinterFactory; //правильный порядок команд 8-5-10-7 - var printer = factory.Create("Test"); - using (var disposingPrinter = printer.Value) + using (var disposingPrinter = factory.Create("Test")) { Console.WriteLine("Printer created"); Thread.Sleep(100); @@ -57,7 +56,7 @@ class Program Thread.Sleep(100); - factory.Register(new SharedObject(new ClientBasedPrinter())); + factory.Register(new ClientBasedPrinter()); Console.WriteLine("Registered printer"); Thread.Sleep(100); @@ -66,7 +65,7 @@ class Program Console.WriteLine("First printer"); Thread.Sleep(100); - Console.WriteLine(registred.Value); + Console.WriteLine(registred); Console.WriteLine("Collecting all printers"); var names = factory.CollectAllNames(); Thread.Sleep(100); @@ -75,8 +74,8 @@ class Program var page = disposingPrinter.Print("Test Page", new CancellationToken()).GetAwaiter().GetResult(); Console.WriteLine("Page printed"); - Console.WriteLine(page.Value.ToString()); - var data = page.Value.GetData(); + Console.WriteLine(page.ToString()); + var data = page.GetData(); Console.WriteLine("Data : {0}", Encoding.UTF8.GetString(data)); Console.WriteLine("Dispose printer"); diff --git a/Example.Shared/IPrinter.cs b/Example.Shared/IPrinter.cs index 6c4fe9a..085b965 100644 --- a/Example.Shared/IPrinter.cs +++ b/Example.Shared/IPrinter.cs @@ -10,7 +10,7 @@ namespace Example.Shared public interface IPrinter : IDisposable { string GetName(); - Task> Print(string text, CancellationToken cancellationToken); + Task Print(string text, CancellationToken cancellationToken); } } \ No newline at end of file diff --git a/Example.Shared/IPrinterFactory.cs b/Example.Shared/IPrinterFactory.cs index bc18270..a2febb9 100644 --- a/Example.Shared/IPrinterFactory.cs +++ b/Example.Shared/IPrinterFactory.cs @@ -6,10 +6,10 @@ namespace Example.Shared [SharedObjectInterface] public interface IPrinterFactory { - SharedObject Create(string printerName); - void Register(SharedObject printer); - SharedObject GetPrinterByName(string printerName); - SharedObject GetFirstPrinter(); + IPrinter Create(string printerName); + void Register(IPrinter printer); + IPrinter GetPrinterByName(string printerName); + IPrinter GetFirstPrinter(); string[] CollectAllNames(); } diff --git a/mROA.Cbor/CborSerializationToolkit.cs b/mROA.Cbor/CborSerializationToolkit.cs index 3fda2b2..cd63254 100644 --- a/mROA.Cbor/CborSerializationToolkit.cs +++ b/mROA.Cbor/CborSerializationToolkit.cs @@ -160,6 +160,9 @@ namespace mROA.Cbor private void WriteObject(object obj, CborWriter writer, IEndPointContext? context) { var type = obj.GetType(); + + + var properties = FilterProperties(type.GetProperties()); var values = properties.Select(property => property.GetValue(obj)).ToList(); WriteList(values, writer, context);