aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2017-12-04 14:15:48 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2017-12-04 14:15:48 +0200
commita635302e9ae4a8ced135620e355697ccf2a27b52 (patch)
tree47b0cdebe8958833f45822970117160ce6c9d237 /Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs
parentc47075cc333329fc6bc93679d847cadcb050436f (diff)
downloadTango-a635302e9ae4a8ced135620e355697ccf2a27b52.tar.gz
Tango-a635302e9ae4a8ced135620e355697ccf2a27b52.zip
Added Tango.Serialization.
Added Tango.Settings.
Diffstat (limited to 'Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs')
-rw-r--r--Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs66
1 files changed, 66 insertions, 0 deletions
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
+{
+ /// <summary>
+ /// Contains a collection of IDataSerializer related helper methods.
+ /// </summary>
+ public static class SerializationHelper
+ {
+ /// <summary>
+ /// Gets a list of all IDataSerializer implemented types.
+ /// </summary>
+ /// <returns></returns>
+ public static List<Type> GetSerializersTypes()
+ {
+ var type = typeof(IDataSerializer);
+ var serializers = System.Reflection.Assembly.GetAssembly(type).GetTypes().Where(x => type.IsAssignableFrom(x) && !x.IsInterface);
+ return serializers.ToList();
+ }
+
+ /// <summary>
+ /// Gets a list of all IDataSerializer implemented instances.
+ /// </summary>
+ /// <returns></returns>
+ public static List<IDataSerializer> GetSerializersInstances()
+ {
+ var types = GetSerializersTypes();
+
+ List<IDataSerializer> serializers = new List<IDataSerializer>();
+
+ foreach (var type in types)
+ {
+ var instance = Activator.CreateInstance(type) as IDataSerializer;
+ serializers.Add(instance);
+ }
+
+ return serializers;
+ }
+
+ /// <summary>
+ /// Returns a serializer instance by type name.
+ /// </summary>
+ /// <param name="name">Name of IDataSerializer type.</param>
+ /// <returns></returns>
+ public static IDataSerializer GetSerializerByName(String name)
+ {
+ var types = GetSerializersTypes();
+ var type = types.SingleOrDefault(x => x.Name == name);
+ return Activator.CreateInstance(type) as IDataSerializer;
+ }
+
+ /// <summary>
+ /// Returns the name of the specified IDataSerializer.
+ /// </summary>
+ /// <param name="serializer">The specified IDataSerializer.</param>
+ /// <returns></returns>
+ public static String GetSerializerName(IDataSerializer serializer)
+ {
+ return serializer.GetType().Name;
+ }
+ }
+}