From a635302e9ae4a8ced135620e355697ccf2a27b52 Mon Sep 17 00:00:00 2001 From: Roy Ben-Shabat Date: Mon, 4 Dec 2017 14:15:48 +0200 Subject: Added Tango.Serialization. Added Tango.Settings. --- .../Tango.Serialization/SerializationHelper.cs | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs (limited to 'Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs') diff --git a/Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs b/Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs new file mode 100644 index 000000000..2d00c8621 --- /dev/null +++ b/Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs @@ -0,0 +1,66 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Tango.Serialization +{ + /// + /// Contains a collection of IDataSerializer related helper methods. + /// + public static class SerializationHelper + { + /// + /// Gets a list of all IDataSerializer implemented types. + /// + /// + public static List GetSerializersTypes() + { + var type = typeof(IDataSerializer); + var serializers = System.Reflection.Assembly.GetAssembly(type).GetTypes().Where(x => type.IsAssignableFrom(x) && !x.IsInterface); + return serializers.ToList(); + } + + /// + /// Gets a list of all IDataSerializer implemented instances. + /// + /// + public static List GetSerializersInstances() + { + var types = GetSerializersTypes(); + + List serializers = new List(); + + foreach (var type in types) + { + var instance = Activator.CreateInstance(type) as IDataSerializer; + serializers.Add(instance); + } + + return serializers; + } + + /// + /// Returns a serializer instance by type name. + /// + /// Name of IDataSerializer type. + /// + public static IDataSerializer GetSerializerByName(String name) + { + var types = GetSerializersTypes(); + var type = types.SingleOrDefault(x => x.Name == name); + return Activator.CreateInstance(type) as IDataSerializer; + } + + /// + /// Returns the name of the specified IDataSerializer. + /// + /// The specified IDataSerializer. + /// + public static String GetSerializerName(IDataSerializer serializer) + { + return serializer.GetType().Name; + } + } +} -- cgit v1.3.1