ToolPack1

В проект ConfigTool добавлена сущность BaseCustomSerialazible<T>

10/12/2019 3:37:49 PM

Details

diff --git a/Build/ConfigurationTool.dll b/Build/ConfigurationTool.dll
index 5321ace..4e2ab37 100644
Binary files a/Build/ConfigurationTool.dll and b/Build/ConfigurationTool.dll differ
diff --git a/Build/ConfigurationTool.pdb b/Build/ConfigurationTool.pdb
index 41a897b..90a158c 100644
Binary files a/Build/ConfigurationTool.pdb and b/Build/ConfigurationTool.pdb differ
diff --git a/ToolPack1/ConfigurationTool/ConfigurationTool.csproj b/ToolPack1/ConfigurationTool/ConfigurationTool.csproj
index ab29e2f..809f7b2 100644
--- a/ToolPack1/ConfigurationTool/ConfigurationTool.csproj
+++ b/ToolPack1/ConfigurationTool/ConfigurationTool.csproj
@@ -43,10 +43,11 @@
     <Reference Include="System.Xml" />
   </ItemGroup>
   <ItemGroup>
+    <Compile Include="CustomSerializer\BaseCustomSerialazible.cs" />
     <Compile Include="ConfigEntity.cs" />
     <Compile Include="ConfigParams.cs" />
     <Compile Include="ConfigurationManager.cs" />
-    <Compile Include="ICustomSerialazible.cs" />
+    <Compile Include="CustomSerializer\ICustomSerialazible.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="Serializer\BinarySerializer.cs" />
     <Compile Include="Serializer\ISerializer.cs" />
diff --git a/ToolPack1/ConfigurationTool/CustomSerializer/BaseCustomSerialazible.cs b/ToolPack1/ConfigurationTool/CustomSerializer/BaseCustomSerialazible.cs
new file mode 100644
index 0000000..9e5f8fb
--- /dev/null
+++ b/ToolPack1/ConfigurationTool/CustomSerializer/BaseCustomSerialazible.cs
@@ -0,0 +1,24 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace ConfigurationTool.CustomSerializer
+{
+    /// <summary>
+    /// Класс используесят для упрощения использования ICustomSerialazible
+    /// </summary>
+    /// <typeparam name="T">Тип, используемый для сериализации</typeparam>
+    public abstract class BaseCustomSerialazible<T> : ICustomSerialazible
+    {
+        public Type SerialazibleType => typeof(T);
+
+        void ICustomSerialazible.Import(object obj) =>
+            Import((T)obj);
+        object ICustomSerialazible.Export() =>
+            Export();
+
+        public abstract T Export();
+        public abstract void Import(T obj);
+    }
+}
diff --git a/ToolPack1/ConfigurationTool/Serializer/BinarySerializer.cs b/ToolPack1/ConfigurationTool/Serializer/BinarySerializer.cs
index 751d3cd..ab74b24 100644
--- a/ToolPack1/ConfigurationTool/Serializer/BinarySerializer.cs
+++ b/ToolPack1/ConfigurationTool/Serializer/BinarySerializer.cs
@@ -7,6 +7,8 @@ using System.Threading.Tasks;
 using System.IO;
 using System.Runtime.Serialization.Formatters.Binary;
 
+using ConfigurationTool.CustomSerializer;
+
 namespace ConfigurationTool.Serializer
 {
     class BinarySerializer<T>
diff --git a/ToolPack1/ConfigurationTool/Serializer/XMLSerializer.cs b/ToolPack1/ConfigurationTool/Serializer/XMLSerializer.cs
index 4262c85..59e43f5 100644
--- a/ToolPack1/ConfigurationTool/Serializer/XMLSerializer.cs
+++ b/ToolPack1/ConfigurationTool/Serializer/XMLSerializer.cs
@@ -7,7 +7,7 @@ using System.Threading.Tasks;
 using System.IO;
 using System.Xml.Serialization;
 
-using ConfigurationTool;
+using ConfigurationTool.CustomSerializer;
 
 namespace ConfigurationTool.Serializer
 {
diff --git a/ToolPack1/Console/Program.cs b/ToolPack1/Console/Program.cs
index 0f64c35..20fa769 100644
--- a/ToolPack1/Console/Program.cs
+++ b/ToolPack1/Console/Program.cs
@@ -5,10 +5,11 @@ using System.Text;
 using System.Threading.Tasks;
 
 using ConfigurationTool;
+using ConfigurationTool.CustomSerializer;
 
 namespace Console
 {  
-    public class ConfigData : ICustomSerialazible
+    public class ConfigData : BaseCustomSerialazible<ConfigData.ConfigData_Serial>
     {
         public class ConfigData_Serial
         {
@@ -34,9 +35,7 @@ namespace Console
             [2]="2"
         };
 
-        public Type SerialazibleType => typeof(ConfigData_Serial);
-
-        public object Export()
+        public override ConfigData_Serial Export()
         => new ConfigData_Serial()
             {
                 ID = ID,
@@ -51,8 +50,7 @@ namespace Console
                     )
                 .ToList()
             };
-
-        public void Import(object obj)
+        public override void Import(ConfigData_Serial obj)
         {
             ConfigData_Serial data = (ConfigData_Serial)obj;