ToolPack1

1) Крупные изменения в пространствах имен 2) Типы параметров

10/19/2019 2:30:56 PM

Changes

.gitignore 45(+31 -14)

Build/ConfigurationTool.dll 0(+0 -0)

Build/ConfigurationTool.pdb 0(+0 -0)

Build/RW_Tool.pdb 0(+0 -0)

ToolPack1/ConfigurationTool/ConfigurationTool.csproj.user 6(+0 -6)

ToolPack1/ConfigurationTool/Serializer/SerializerFactory.cs 68(+0 -68)

ToolPack1/Console/Config.xml 15(+0 -15)

Details

.gitignore 45(+31 -14)

diff --git a/.gitignore b/.gitignore
index 75619a0..dc0b99e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,24 +3,41 @@ ToolPack1/.vs/
 ToolPack1/packages/
 
 
-ToolPack1/Console/bin/
-ToolPack1/Console/obj/
+#Test
+#----------------------------------------
+ToolPack1/Test/Test.Console/bin/
+ToolPack1/Test/Test.Console/obj/
 
-ToolPack1/ConfigurationTool/bin/
-ToolPack1/ConfigurationTool/obj/
+ToolPack1/Test/Test.ConfigurationTool/bin/
+ToolPack1/Test/Test.ConfigurationTool/obj/
 
-ToolPack1/SingletonTool/bin/
-ToolPack1/SingletonTool/obj/
+ToolPack1/Test/Test.SingletonTool/bin/
+ToolPack1/Test/Test.SingletonTool/obj/
+#----------------------------------------
 
-ToolPack1/SimpleBenchmark/bin/
-ToolPack1/SimpleBenchmark/obj/
 
-ToolPack1/RW_Tool/bin/
-ToolPack1/RW_Tool/obj/
+#RW_Tool
+#----------------------------------------
+ToolPack1/RW_Tool/RW_Tool.Core/bin/
+ToolPack1/RW_Tool/RW_Tool.Core/obj/
 
+ToolPack1/RW_Tool/RW_Tool.DataSource.FileOrStream/bin/
+ToolPack1/RW_Tool/RW_Tool.DataSource.FileOrStream/obj/
 
-ToolPack1/Test_ConfigurationTool/bin/
-ToolPack1/Test_ConfigurationTool/obj/
+ToolPack1/RW_Tool/RW_Tool.XML_BIN/bin/
+ToolPack1/RW_Tool/RW_Tool.XML_BIN/obj/
+#----------------------------------------
+
+
+#Tools
+#----------------------------------------
+ToolPack1/Tools/Tools.SimpleBenchmark/bin/
+ToolPack1/Tools/Tools.SimpleBenchmark/obj/
+
+ToolPack1/Tools/Tools.SingletonTool/bin/
+ToolPack1/Tools/Tools.SingletonTool/obj/
+
+ToolPack1/Tools/Tools.ConfigurationTool/bin/
+ToolPack1/Tools/Tools.ConfigurationTool/obj/
+#----------------------------------------
 
-ToolPack1/Test_SingletonTool/bin/
-ToolPack1/Test_SingletonTool/obj/
diff --git a/Build/RW_Tool.Core.pdb b/Build/RW_Tool.Core.pdb
new file mode 100644
index 0000000..67a7aee
Binary files /dev/null and b/Build/RW_Tool.Core.pdb differ
diff --git a/Build/RW_Tool.DataSource.FileOrStream.dll b/Build/RW_Tool.DataSource.FileOrStream.dll
new file mode 100644
index 0000000..dd6f715
Binary files /dev/null and b/Build/RW_Tool.DataSource.FileOrStream.dll differ
diff --git a/Build/RW_Tool.DataSource.FileOrStream.pdb b/Build/RW_Tool.DataSource.FileOrStream.pdb
new file mode 100644
index 0000000..6444371
Binary files /dev/null and b/Build/RW_Tool.DataSource.FileOrStream.pdb differ
diff --git a/Build/RW_Tool.XML_BIN.dll b/Build/RW_Tool.XML_BIN.dll
new file mode 100644
index 0000000..e435435
Binary files /dev/null and b/Build/RW_Tool.XML_BIN.dll differ
diff --git a/Build/RW_Tool.XML_BIN.pdb b/Build/RW_Tool.XML_BIN.pdb
new file mode 100644
index 0000000..6517374
Binary files /dev/null and b/Build/RW_Tool.XML_BIN.pdb differ
diff --git a/Build/Tools.ConfigurationTool.dll b/Build/Tools.ConfigurationTool.dll
new file mode 100644
index 0000000..e6205be
Binary files /dev/null and b/Build/Tools.ConfigurationTool.dll differ
diff --git a/Build/Tools.ConfigurationTool.pdb b/Build/Tools.ConfigurationTool.pdb
new file mode 100644
index 0000000..ad03055
Binary files /dev/null and b/Build/Tools.ConfigurationTool.pdb differ
diff --git a/ToolPack1/RW_Tool/RW_Tool.DataSource.FileOrStream/RW_Tool.DataSource.FileOrStream.csproj b/ToolPack1/RW_Tool/RW_Tool.DataSource.FileOrStream/RW_Tool.DataSource.FileOrStream.csproj
new file mode 100644
index 0000000..b0d9ea6
--- /dev/null
+++ b/ToolPack1/RW_Tool/RW_Tool.DataSource.FileOrStream/RW_Tool.DataSource.FileOrStream.csproj
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{1AFD03BC-6394-4806-8060-B781CD2FA35F}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>RW_Tool.DataSource.FileOrStream</RootNamespace>
+    <AssemblyName>RW_Tool.DataSource.FileOrStream</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DS_File.cs" />
+    <Compile Include="DS_Stream.cs" />
+    <Compile Include="DS_FileOrStream.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\RW_Tool.Core\RW_Tool.Core.csproj">
+      <Project>{046be9f2-d57f-4854-b329-1280de2f415d}</Project>
+      <Name>RW_Tool.Core</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/ToolPack1/RW_Tool/RW_Tool.XML_BIN/Factory.cs b/ToolPack1/RW_Tool/RW_Tool.XML_BIN/Factory.cs
new file mode 100644
index 0000000..5d180e7
--- /dev/null
+++ b/ToolPack1/RW_Tool/RW_Tool.XML_BIN/Factory.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+using RW_Tool.Core;
+using RW_Tool.Core.Abstract;
+using RW_Tool.DataSource.FileOrStream; 
+
+using RW_Tool.XML_BIN.RW_BIN;
+using RW_Tool.XML_BIN.RW_XML;
+
+namespace RW_Tool.XML_BIN
+{
+    public class Factory<T>
+        where T : class, new()
+    {
+        public RW<T, DS_FileOrStream> GetRW(EnumFormat format, DS_FileOrStream ds = null)
+        {
+            switch (format)
+            {
+                case EnumFormat.XML: return GetXMLRW(ds);
+                case EnumFormat.Bin: return GetBinRW(ds);
+
+                default: throw new Exception();
+            }
+        }
+             
+
+        public RW<T, DS_FileOrStream> GetXMLRW(DS_FileOrStream ds = null)            
+        =>
+             new RW<T, DS_FileOrStream>
+                (
+                ds,
+                new XML_Reader<T>(),
+                new XML_Writer<T>()
+                );
+
+        public RW<T, DS_FileOrStream> GetBinRW(DS_FileOrStream ds = null)            
+        =>
+             new RW<T, DS_FileOrStream>
+                (
+                ds,
+                new Bin_Reader<T>(),
+                new Bin_Writer<T>()
+                );
+
+    }
+
+    public class Factory<T1, T3>
+        where T1 : class, new()
+        where T3 : class, new()
+    {
+        public RW_Custom<T1, DS_FileOrStream, T3> GetRW(EnumFormat format, ITransformator<T1,T3> transformator, DS_FileOrStream ds = null)
+        {
+            switch (format)
+            {
+                case EnumFormat.XML: return GetXMLRW(transformator, ds);
+                case EnumFormat.Bin: return GetBinRW(transformator, ds);
+
+                default: throw new Exception();
+            }
+        }
+
+
+        public RW_Custom<T1, DS_FileOrStream, T3> GetXMLRW(ITransformator<T1, T3> transformator, DS_FileOrStream ds = null)
+        =>
+             new RW_Custom<T1, DS_FileOrStream, T3>
+                (
+                ds,
+                transformator,
+                new XML_Reader<T3>(),
+                new XML_Writer<T3>()
+                );
+
+        public RW_Custom<T1, DS_FileOrStream, T3> GetBinRW(ITransformator<T1, T3> transformator, DS_FileOrStream ds = null)
+        =>
+             new RW_Custom<T1, DS_FileOrStream, T3>
+                (
+                ds,
+                transformator,
+                new Bin_Reader<T3>(),
+                new Bin_Writer<T3>()
+                );
+    }
+
+}
diff --git a/ToolPack1/RW_Tool/RW_Tool.XML_BIN/RW_Tool.XML_BIN.csproj b/ToolPack1/RW_Tool/RW_Tool.XML_BIN/RW_Tool.XML_BIN.csproj
new file mode 100644
index 0000000..2ad0bfb
--- /dev/null
+++ b/ToolPack1/RW_Tool/RW_Tool.XML_BIN/RW_Tool.XML_BIN.csproj
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{B583F4C3-33C7-4206-81FB-D18D85C6156B}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <RootNamespace>RW_Tool.XML_BIN</RootNamespace>
+    <AssemblyName>RW_Tool.XML_BIN</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+    <Deterministic>true</Deterministic>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup>
+    <StartupObject />
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="EnumFormat.cs" />
+    <Compile Include="Factory.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="RW_BIN\Bin_Reader.cs" />
+    <Compile Include="RW_BIN\Bin_Writer.cs" />
+    <Compile Include="RW_XML\XML_Reader.cs" />
+    <Compile Include="RW_XML\XML_Writer.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <ProjectReference Include="..\RW_Tool.Core\RW_Tool.Core.csproj">
+      <Project>{046be9f2-d57f-4854-b329-1280de2f415d}</Project>
+      <Name>RW_Tool.Core</Name>
+    </ProjectReference>
+    <ProjectReference Include="..\RW_Tool.DataSource.FileOrStream\RW_Tool.DataSource.FileOrStream.csproj">
+      <Project>{1afd03bc-6394-4806-8060-b781cd2fa35f}</Project>
+      <Name>RW_Tool.DataSource.FileOrStream</Name>
+    </ProjectReference>
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+</Project>
\ No newline at end of file
diff --git a/ToolPack1/ToolPack1.sln b/ToolPack1/ToolPack1.sln
index c43679d..64b29e8 100644
--- a/ToolPack1/ToolPack1.sln
+++ b/ToolPack1/ToolPack1.sln
@@ -5,21 +5,27 @@ VisualStudioVersion = 15.0.28307.136
 MinimumVisualStudioVersion = 10.0.40219.1
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{ABC5281A-6B36-4D11-AFED-3E2EF981AA49}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Console", "Console\Console.csproj", "{2383B162-6D95-47F4-AD93-8765DBB7AD89}"
-EndProject
 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{9FC03DF2-3AFE-4A62-B380-B9CBFF6486D1}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SingletonTool", "SingletonTool\SingletonTool.csproj", "{E69E7D23-3595-4742-AD69-9B245CE9C7B8}"
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "RW_Tool", "RW_Tool", "{F71B9F35-2930-4B36-8DF8-38CE11C38B65}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.Console", "Test\Test.Console\Test.Console.csproj", "{35908D2A-E07C-4E1D-A1DC-27842B76997F}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.ConfigurationTool", "Test\Test.ConfigurationTool\Test.ConfigurationTool.csproj", "{53EA5488-9122-4ED1-A1CF-9FA6A4C1C230}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test.SingletonTool", "Test\Test.SingletonTool\Test.SingletonTool.csproj", "{8BBFBFD1-6A5B-46C3-B0BE-306C2784B92D}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RW_Tool.Core", "RW_Tool\RW_Tool.Core\RW_Tool.Core.csproj", "{046BE9F2-D57F-4854-B329-1280DE2F415D}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConfigurationTool", "ConfigurationTool\ConfigurationTool.csproj", "{E8A983A0-FF7D-4E9A-9234-3F19CCB93700}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RW_Tool.DataSource.FileOrStream", "RW_Tool\RW_Tool.DataSource.FileOrStream\RW_Tool.DataSource.FileOrStream.csproj", "{1AFD03BC-6394-4806-8060-B781CD2FA35F}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleBenchmark", "SimpleBenchmark\SimpleBenchmark.csproj", "{F862BC1F-ABC5-4C80-9210-1722DA94A04C}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RW_Tool.XML_BIN", "RW_Tool\RW_Tool.XML_BIN\RW_Tool.XML_BIN.csproj", "{B583F4C3-33C7-4206-81FB-D18D85C6156B}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RW_Tool", "RW_Tool\RW_Tool.csproj", "{78207C90-5CFA-4DED-A047-CF711CBA3F86}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools.SingletonTool", "Tools\Tools.SingletonTool\Tools.SingletonTool.csproj", "{9F92F1E3-A1B2-4D28-BBBB-CCE462C8A769}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_ConfigurationTool", "Test_ConfigurationTool\Test_ConfigurationTool.csproj", "{63854C73-461C-4AAD-B017-4F128047B1A7}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools.SimpleBenchmark", "Tools\Tools.SimpleBenchmark\Tools.SimpleBenchmark.csproj", "{BDFFE46F-BB48-491B-8834-5C834BFE44DF}"
 EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test_SingletonTool", "Test_SingletonTool\Test_SingletonTool.csproj", "{2C94D5E5-08D3-46E1-A38E-F053D72B9389}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tools.ConfigurationTool", "Tools\Tools.ConfigurationTool\Tools.ConfigurationTool.csproj", "{030EFB46-4E9A-412A-BEE2-C09E7FFED9E6}"
 EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -27,46 +33,56 @@ Global
 		Release|Any CPU = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
-		{2383B162-6D95-47F4-AD93-8765DBB7AD89}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2383B162-6D95-47F4-AD93-8765DBB7AD89}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2383B162-6D95-47F4-AD93-8765DBB7AD89}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2383B162-6D95-47F4-AD93-8765DBB7AD89}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E69E7D23-3595-4742-AD69-9B245CE9C7B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E69E7D23-3595-4742-AD69-9B245CE9C7B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E69E7D23-3595-4742-AD69-9B245CE9C7B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E69E7D23-3595-4742-AD69-9B245CE9C7B8}.Release|Any CPU.Build.0 = Release|Any CPU
-		{E8A983A0-FF7D-4E9A-9234-3F19CCB93700}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{E8A983A0-FF7D-4E9A-9234-3F19CCB93700}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{E8A983A0-FF7D-4E9A-9234-3F19CCB93700}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{E8A983A0-FF7D-4E9A-9234-3F19CCB93700}.Release|Any CPU.Build.0 = Release|Any CPU
-		{F862BC1F-ABC5-4C80-9210-1722DA94A04C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{F862BC1F-ABC5-4C80-9210-1722DA94A04C}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{F862BC1F-ABC5-4C80-9210-1722DA94A04C}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{F862BC1F-ABC5-4C80-9210-1722DA94A04C}.Release|Any CPU.Build.0 = Release|Any CPU
-		{78207C90-5CFA-4DED-A047-CF711CBA3F86}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{78207C90-5CFA-4DED-A047-CF711CBA3F86}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{78207C90-5CFA-4DED-A047-CF711CBA3F86}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{78207C90-5CFA-4DED-A047-CF711CBA3F86}.Release|Any CPU.Build.0 = Release|Any CPU
-		{63854C73-461C-4AAD-B017-4F128047B1A7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{63854C73-461C-4AAD-B017-4F128047B1A7}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{63854C73-461C-4AAD-B017-4F128047B1A7}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{63854C73-461C-4AAD-B017-4F128047B1A7}.Release|Any CPU.Build.0 = Release|Any CPU
-		{2C94D5E5-08D3-46E1-A38E-F053D72B9389}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
-		{2C94D5E5-08D3-46E1-A38E-F053D72B9389}.Debug|Any CPU.Build.0 = Debug|Any CPU
-		{2C94D5E5-08D3-46E1-A38E-F053D72B9389}.Release|Any CPU.ActiveCfg = Release|Any CPU
-		{2C94D5E5-08D3-46E1-A38E-F053D72B9389}.Release|Any CPU.Build.0 = Release|Any CPU
+		{35908D2A-E07C-4E1D-A1DC-27842B76997F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{35908D2A-E07C-4E1D-A1DC-27842B76997F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{35908D2A-E07C-4E1D-A1DC-27842B76997F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{35908D2A-E07C-4E1D-A1DC-27842B76997F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{53EA5488-9122-4ED1-A1CF-9FA6A4C1C230}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{53EA5488-9122-4ED1-A1CF-9FA6A4C1C230}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{53EA5488-9122-4ED1-A1CF-9FA6A4C1C230}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{53EA5488-9122-4ED1-A1CF-9FA6A4C1C230}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8BBFBFD1-6A5B-46C3-B0BE-306C2784B92D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8BBFBFD1-6A5B-46C3-B0BE-306C2784B92D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8BBFBFD1-6A5B-46C3-B0BE-306C2784B92D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8BBFBFD1-6A5B-46C3-B0BE-306C2784B92D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{046BE9F2-D57F-4854-B329-1280DE2F415D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{046BE9F2-D57F-4854-B329-1280DE2F415D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{046BE9F2-D57F-4854-B329-1280DE2F415D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{046BE9F2-D57F-4854-B329-1280DE2F415D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1AFD03BC-6394-4806-8060-B781CD2FA35F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1AFD03BC-6394-4806-8060-B781CD2FA35F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1AFD03BC-6394-4806-8060-B781CD2FA35F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1AFD03BC-6394-4806-8060-B781CD2FA35F}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B583F4C3-33C7-4206-81FB-D18D85C6156B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B583F4C3-33C7-4206-81FB-D18D85C6156B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B583F4C3-33C7-4206-81FB-D18D85C6156B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B583F4C3-33C7-4206-81FB-D18D85C6156B}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9F92F1E3-A1B2-4D28-BBBB-CCE462C8A769}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9F92F1E3-A1B2-4D28-BBBB-CCE462C8A769}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9F92F1E3-A1B2-4D28-BBBB-CCE462C8A769}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9F92F1E3-A1B2-4D28-BBBB-CCE462C8A769}.Release|Any CPU.Build.0 = Release|Any CPU
+		{BDFFE46F-BB48-491B-8834-5C834BFE44DF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{BDFFE46F-BB48-491B-8834-5C834BFE44DF}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{BDFFE46F-BB48-491B-8834-5C834BFE44DF}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{BDFFE46F-BB48-491B-8834-5C834BFE44DF}.Release|Any CPU.Build.0 = Release|Any CPU
+		{030EFB46-4E9A-412A-BEE2-C09E7FFED9E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{030EFB46-4E9A-412A-BEE2-C09E7FFED9E6}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{030EFB46-4E9A-412A-BEE2-C09E7FFED9E6}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{030EFB46-4E9A-412A-BEE2-C09E7FFED9E6}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
 	EndGlobalSection
 	GlobalSection(NestedProjects) = preSolution
-		{2383B162-6D95-47F4-AD93-8765DBB7AD89} = {ABC5281A-6B36-4D11-AFED-3E2EF981AA49}
-		{E69E7D23-3595-4742-AD69-9B245CE9C7B8} = {9FC03DF2-3AFE-4A62-B380-B9CBFF6486D1}
-		{E8A983A0-FF7D-4E9A-9234-3F19CCB93700} = {9FC03DF2-3AFE-4A62-B380-B9CBFF6486D1}
-		{F862BC1F-ABC5-4C80-9210-1722DA94A04C} = {9FC03DF2-3AFE-4A62-B380-B9CBFF6486D1}
-		{78207C90-5CFA-4DED-A047-CF711CBA3F86} = {9FC03DF2-3AFE-4A62-B380-B9CBFF6486D1}
-		{63854C73-461C-4AAD-B017-4F128047B1A7} = {ABC5281A-6B36-4D11-AFED-3E2EF981AA49}
-		{2C94D5E5-08D3-46E1-A38E-F053D72B9389} = {ABC5281A-6B36-4D11-AFED-3E2EF981AA49}
+		{35908D2A-E07C-4E1D-A1DC-27842B76997F} = {ABC5281A-6B36-4D11-AFED-3E2EF981AA49}
+		{53EA5488-9122-4ED1-A1CF-9FA6A4C1C230} = {ABC5281A-6B36-4D11-AFED-3E2EF981AA49}
+		{8BBFBFD1-6A5B-46C3-B0BE-306C2784B92D} = {ABC5281A-6B36-4D11-AFED-3E2EF981AA49}
+		{046BE9F2-D57F-4854-B329-1280DE2F415D} = {F71B9F35-2930-4B36-8DF8-38CE11C38B65}
+		{1AFD03BC-6394-4806-8060-B781CD2FA35F} = {F71B9F35-2930-4B36-8DF8-38CE11C38B65}
+		{B583F4C3-33C7-4206-81FB-D18D85C6156B} = {F71B9F35-2930-4B36-8DF8-38CE11C38B65}
+		{9F92F1E3-A1B2-4D28-BBBB-CCE462C8A769} = {9FC03DF2-3AFE-4A62-B380-B9CBFF6486D1}
+		{BDFFE46F-BB48-491B-8834-5C834BFE44DF} = {9FC03DF2-3AFE-4A62-B380-B9CBFF6486D1}
+		{030EFB46-4E9A-412A-BEE2-C09E7FFED9E6} = {9FC03DF2-3AFE-4A62-B380-B9CBFF6486D1}
 	EndGlobalSection
 	GlobalSection(ExtensibilityGlobals) = postSolution
 		SolutionGuid = {408C4B5A-5AF0-418D-A722-B2B253B5F831}
diff --git a/ToolPack1/Tools/Tools.ConfigurationTool/Serializer/SerializerFactory.cs b/ToolPack1/Tools/Tools.ConfigurationTool/Serializer/SerializerFactory.cs
new file mode 100644
index 0000000..0739a3f
--- /dev/null
+++ b/ToolPack1/Tools/Tools.ConfigurationTool/Serializer/SerializerFactory.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+using RW_Tool.Core.Abstract;
+using RW_Tool.DataSource.FileOrStream;
+using RW_Tool.XML_BIN;
+
+namespace Tools.ConfigurationTool.Serializer
+{
+    internal class SerializerFactory       
+    {
+        public I_RW<T, DS_FileOrStream> GetSerializer<T>(string file, EnumFormat format)
+            where T : class, new()
+        => new Factory<T>().GetRW(format, new DS_File(file));
+
+        public I_RW<T1, DS_FileOrStream> GetSerializer_Custon<T1, T3>(string file, EnumFormat format, ITransformator<T1, T3> transformator)
+            where T1 : class, new()
+            where T3 : class, new()
+        => new Factory<T1, T3>().GetRW(format, transformator, new DS_File(file));
+
+    }
+}
diff --git a/ToolPack1/Tools/Tools.SimpleBenchmark/Properties/AssemblyInfo.cs b/ToolPack1/Tools/Tools.SimpleBenchmark/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..98ed8c6
--- /dev/null
+++ b/ToolPack1/Tools/Tools.SimpleBenchmark/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
+// связанные со сборкой.
+[assembly: AssemblyTitle("Tools.Tools.SimpleBenchmark")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Tools.Tools.SimpleBenchmark")]
+[assembly: AssemblyCopyright("Copyright ©  2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+[assembly: Guid("bdffe46f-bb48-491b-8834-5c834bfe44df")]
+
+// Сведения о версии сборки состоят из следующих четырех значений:
+//
+//      Основной номер версии
+//      Дополнительный номер версии
+//   Номер сборки
+//      Редакция
+//
+// Можно задать все значения или принять номер сборки и номер редакции по умолчанию.
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/ToolPack1/Tools/Tools.SingletonTool/Properties/AssemblyInfo.cs b/ToolPack1/Tools/Tools.SingletonTool/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..d497a2b
--- /dev/null
+++ b/ToolPack1/Tools/Tools.SingletonTool/Properties/AssemblyInfo.cs
@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// Общие сведения об этой сборке предоставляются следующим набором
+// набора атрибутов. Измените значения этих атрибутов, чтобы изменить сведения,
+// связанные со сборкой.
+[assembly: AssemblyTitle("Tools.SingletonTool")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("Tools.SingletonTool")]
+[assembly: AssemblyCopyright("Copyright ©  2019")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Установка значения False для параметра ComVisible делает типы в этой сборке невидимыми
+// для компонентов COM. Если необходимо обратиться к типу в этой сборке через
+// COM, задайте атрибуту ComVisible значение TRUE для этого типа.
+[assembly: ComVisible(false)]
+
+// Следующий GUID служит для идентификации библиотеки типов, если этот проект будет видимым для COM
+[assembly: Guid("9f92f1e3-a1b2-4d28-bbbb-cce462c8a769")]
+
+// Сведения о версии сборки состоят из следующих четырех значений:
+//
+//      Основной номер версии
+//      Дополнительный номер версии
+//   Номер сборки
+//      Редакция
+//
+// Можно задать все значения или принять номер сборки и номер редакции по умолчанию.
+// используя "*", как показано ниже:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]