diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2017-12-04 14:15:48 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2017-12-04 14:15:48 +0200 |
| commit | a635302e9ae4a8ced135620e355697ccf2a27b52 (patch) | |
| tree | 47b0cdebe8958833f45822970117160ce6c9d237 /Software/Visual_Studio/Tango.Serialization/SerializationHelper.cs | |
| parent | c47075cc333329fc6bc93679d847cadcb050436f (diff) | |
| download | Tango-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.cs | 66 |
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; + } + } +} |
