From c00d9b89e2354678120794b8bef7f13a313a88a8 Mon Sep 17 00:00:00 2001 From: yfakariya Date: Sun, 26 Mar 2017 20:04:54 +0900 Subject: [PATCH 01/13] Update copyright --- src/CommonAssemblyInfo.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/CommonAssemblyInfo.cs b/src/CommonAssemblyInfo.cs index 041adaa68..b7917caf1 100644 --- a/src/CommonAssemblyInfo.cs +++ b/src/CommonAssemblyInfo.cs @@ -25,7 +25,7 @@ using System.Resources; using System.Runtime.InteropServices; -[assembly: AssemblyCopyright( "Copyright © FUJIWARA, Yusuke 2010-2016" )] +[assembly: AssemblyCopyright( "Copyright © FUJIWARA, Yusuke 2010-2017" )] [assembly: AssemblyProduct( "MessagePack" )] [assembly: CLSCompliant( true )] [assembly: ComVisible( false )] From f59cdd113fd42ed7e6f1a482be7b9607b6dc956f Mon Sep 17 00:00:00 2001 From: yfakariya Date: Sun, 19 Mar 2017 21:14:35 +0900 Subject: [PATCH 02/13] Migrate and consolidate project. --- MsgPack.sln | 178 +++-- Sync.xml | 9 - .../MsgPack.Unity.Full.csproj | 9 +- src/MsgPack.Unity/MsgPack.Unity.csproj | 6 +- .../BufferedStream.cs | 0 src/{netstandard => MsgPack}/MPContract.cs | 0 src/MsgPack/MsgPack.csproj | 724 +++++++----------- .../NetStandardCompatibility.cs | 0 src/MsgPack/Properties/AssemblyInfo.cs | 29 +- .../MessagePackSerializer.Factories.cs | 4 +- .../Serialization/SerializerDebugging.cs | 14 +- .../Serialization/SerializerGenerator.cs | 4 +- 12 files changed, 417 insertions(+), 560 deletions(-) rename src/{netstandard => MsgPack}/BufferedStream.cs (100%) rename src/{netstandard => MsgPack}/MPContract.cs (100%) rename src/{netstandard => MsgPack}/NetStandardCompatibility.cs (100%) diff --git a/MsgPack.sln b/MsgPack.sln index a0457af47..21b2891d9 100644 --- a/MsgPack.sln +++ b/MsgPack.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26228.4 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{60EC42E9-D79B-4ADF-8F80-4DCD580061FD}" ProjectSection(SolutionItems) = preProject @@ -12,16 +12,12 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1BD5D488-707 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{87A17015-9338-431E-B338-57BDA03984C1}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".NET46", ".NET46", "{DDA4827C-7960-4CA6-AE41-8C1544DCFBE9}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{DB9CF5EC-73DA-4AEB-BC6B-AF4260009E8B}" ProjectSection(SolutionItems) = preProject .nuget\NuGet.exe = .nuget\NuGet.exe .nuget\NuGet.targets = .nuget\NuGet.targets EndProjectSection EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack", "src\MsgPack\MsgPack.csproj", "{5BCEC32E-990E-4DE5-945F-BD27326A7418}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest", "test\MsgPack.UnitTest\MsgPack.UnitTest.csproj", "{3889C9BE-0473-4B41-80E8-C4C923E837E7}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.NUnitPortable", "test\MsgPack.NUnitPortable\MsgPack.NUnitPortable.csproj", "{FC521316-EBCD-4EF1-8235-C976B2A31EB0}" @@ -38,9 +34,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CLR", "CLR", "{AF25D7E8-2F5 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_common", "_common", "{EACF1BF1-CB21-4D62-942C-3488F60B8D70}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".NET45", ".NET45", "{3E9C7751-EE97-4820-BFEF-BA5F532A45C9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.Net45", "src\MsgPack.Net45\MsgPack.Net45.csproj", "{9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MsgPack", "src\MsgPack\MsgPack.csproj", "{5BCEC32E-990E-4DE5-945F-BD27326A7418}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -54,6 +48,11 @@ Global Debug|Mixed Platforms = Debug|Mixed Platforms Debug|x64 = Debug|x64 Debug|x86 = Debug|x86 + Instrument|Any CPU = Instrument|Any CPU + Instrument|ARM = Instrument|ARM + Instrument|Mixed Platforms = Instrument|Mixed Platforms + Instrument|x64 = Instrument|x64 + Instrument|x86 = Instrument|x86 PerformanceTest|Any CPU = PerformanceTest|Any CPU PerformanceTest|ARM = PerformanceTest|ARM PerformanceTest|Mixed Platforms = PerformanceTest|Mixed Platforms @@ -66,34 +65,6 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|ARM.ActiveCfg = CodeAnalysis|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Mixed Platforms.ActiveCfg = CodeAnalysis|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Mixed Platforms.Build.0 = CodeAnalysis|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|x64.ActiveCfg = CodeAnalysis|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|x86.ActiveCfg = CodeAnalysis|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|ARM.ActiveCfg = Debug|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|x64.ActiveCfg = Debug|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|x86.ActiveCfg = Debug|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Any CPU.ActiveCfg = PerformanceTest|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Any CPU.Build.0 = PerformanceTest|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|ARM.ActiveCfg = PerformanceTest|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Mixed Platforms.ActiveCfg = PerformanceTest|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Mixed Platforms.Build.0 = PerformanceTest|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|x64.ActiveCfg = PerformanceTest|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|x86.ActiveCfg = PerformanceTest|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Any CPU.Build.0 = Release|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|ARM.ActiveCfg = Release|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x64.ActiveCfg = Release|Any CPU - {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x86.ActiveCfg = Release|Any CPU {3889C9BE-0473-4B41-80E8-C4C923E837E7}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU {3889C9BE-0473-4B41-80E8-C4C923E837E7}.CodeAnalysis|ARM.ActiveCfg = CodeAnalysis|Any CPU {3889C9BE-0473-4B41-80E8-C4C923E837E7}.CodeAnalysis|Mixed Platforms.ActiveCfg = CodeAnalysis|Any CPU @@ -106,6 +77,16 @@ Global {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Debug|x64.ActiveCfg = Debug|Any CPU {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Debug|x86.ActiveCfg = Debug|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|Any CPU.ActiveCfg = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|Any CPU.Build.0 = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|ARM.ActiveCfg = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|ARM.Build.0 = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|Mixed Platforms.ActiveCfg = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|Mixed Platforms.Build.0 = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|x64.ActiveCfg = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|x64.Build.0 = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|x86.ActiveCfg = Instrument|Any CPU + {3889C9BE-0473-4B41-80E8-C4C923E837E7}.Instrument|x86.Build.0 = Instrument|Any CPU {3889C9BE-0473-4B41-80E8-C4C923E837E7}.PerformanceTest|Any CPU.ActiveCfg = PerformanceTest|Any CPU {3889C9BE-0473-4B41-80E8-C4C923E837E7}.PerformanceTest|Any CPU.Build.0 = PerformanceTest|Any CPU {3889C9BE-0473-4B41-80E8-C4C923E837E7}.PerformanceTest|ARM.ActiveCfg = PerformanceTest|Any CPU @@ -130,6 +111,16 @@ Global {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Debug|x64.ActiveCfg = Debug|Any CPU {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Debug|x86.ActiveCfg = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|Any CPU.ActiveCfg = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|Any CPU.Build.0 = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|ARM.ActiveCfg = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|ARM.Build.0 = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|Mixed Platforms.ActiveCfg = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|Mixed Platforms.Build.0 = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|x64.ActiveCfg = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|x64.Build.0 = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|x86.ActiveCfg = Debug|Any CPU + {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.Instrument|x86.Build.0 = Debug|Any CPU {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU {FC521316-EBCD-4EF1-8235-C976B2A31EB0}.PerformanceTest|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -152,6 +143,16 @@ Global {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Debug|x64.ActiveCfg = Debug|Any CPU {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Debug|x86.ActiveCfg = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|Any CPU.ActiveCfg = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|Any CPU.Build.0 = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|ARM.ActiveCfg = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|ARM.Build.0 = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|Mixed Platforms.ActiveCfg = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|Mixed Platforms.Build.0 = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|x64.ActiveCfg = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|x64.Build.0 = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|x86.ActiveCfg = Debug|Any CPU + {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.Instrument|x86.Build.0 = Debug|Any CPU {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2}.PerformanceTest|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -174,6 +175,16 @@ Global {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Debug|x64.ActiveCfg = Debug|Any CPU {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Debug|x86.ActiveCfg = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|Any CPU.ActiveCfg = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|Any CPU.Build.0 = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|ARM.ActiveCfg = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|ARM.Build.0 = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|Mixed Platforms.ActiveCfg = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|Mixed Platforms.Build.0 = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|x64.ActiveCfg = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|x64.Build.0 = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|x86.ActiveCfg = Debug|Any CPU + {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.Instrument|x86.Build.0 = Debug|Any CPU {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU {DB3ED6D2-D27F-4E8F-AFE2-5503113216AC}.PerformanceTest|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -196,6 +207,16 @@ Global {7F8D9786-383D-4441-8A3A-5E305E26B965}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {7F8D9786-383D-4441-8A3A-5E305E26B965}.Debug|x64.ActiveCfg = Debug|Any CPU {7F8D9786-383D-4441-8A3A-5E305E26B965}.Debug|x86.ActiveCfg = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|Any CPU.ActiveCfg = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|Any CPU.Build.0 = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|ARM.ActiveCfg = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|ARM.Build.0 = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|Mixed Platforms.ActiveCfg = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|Mixed Platforms.Build.0 = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|x64.ActiveCfg = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|x64.Build.0 = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|x86.ActiveCfg = Debug|Any CPU + {7F8D9786-383D-4441-8A3A-5E305E26B965}.Instrument|x86.Build.0 = Debug|Any CPU {7F8D9786-383D-4441-8A3A-5E305E26B965}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU {7F8D9786-383D-4441-8A3A-5E305E26B965}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU {7F8D9786-383D-4441-8A3A-5E305E26B965}.PerformanceTest|Mixed Platforms.ActiveCfg = Debug|Any CPU @@ -206,41 +227,61 @@ Global {7F8D9786-383D-4441-8A3A-5E305E26B965}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU {7F8D9786-383D-4441-8A3A-5E305E26B965}.Release|x64.ActiveCfg = Release|Any CPU {7F8D9786-383D-4441-8A3A-5E305E26B965}.Release|x86.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.CodeAnalysis|Any CPU.Build.0 = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.CodeAnalysis|Mixed Platforms.ActiveCfg = CodeAnalysis|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.CodeAnalysis|Mixed Platforms.Build.0 = CodeAnalysis|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Debug|ARM.ActiveCfg = Debug|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Debug|x64.ActiveCfg = Debug|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Debug|x86.ActiveCfg = Debug|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.PerformanceTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.PerformanceTest|Mixed Platforms.Build.0 = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.PerformanceTest|x64.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.PerformanceTest|x86.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Release|Any CPU.Build.0 = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Release|ARM.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Release|x64.ActiveCfg = Release|Any CPU - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D}.Release|x86.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|ARM.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|ARM.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Mixed Platforms.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Mixed Platforms.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|x64.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|x64.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|x86.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|x86.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|ARM.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|ARM.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|x64.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|x64.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|x86.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|x86.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|Any CPU.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|Any CPU.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|ARM.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|ARM.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|Mixed Platforms.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|Mixed Platforms.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|x64.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|x64.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|x86.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|x86.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Any CPU.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Any CPU.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|ARM.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|ARM.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Mixed Platforms.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Mixed Platforms.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|x64.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|x64.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|x86.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|x86.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Any CPU.Build.0 = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|ARM.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|ARM.Build.0 = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x64.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x64.Build.0 = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x86.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {DDA4827C-7960-4CA6-AE41-8C1544DCFBE9} = {1BD5D488-707E-4030-8AE8-80D93D04963F} - {5BCEC32E-990E-4DE5-945F-BD27326A7418} = {DDA4827C-7960-4CA6-AE41-8C1544DCFBE9} {3889C9BE-0473-4B41-80E8-C4C923E837E7} = {AF25D7E8-2F55-4431-BCE1-7C3E3C0E74E1} {FC521316-EBCD-4EF1-8235-C976B2A31EB0} = {EACF1BF1-CB21-4D62-942C-3488F60B8D70} {23F8ABB1-F41A-4150-B5D5-9A7AA60E05D2} = {AF25D7E8-2F55-4431-BCE1-7C3E3C0E74E1} @@ -248,7 +289,6 @@ Global {7F8D9786-383D-4441-8A3A-5E305E26B965} = {7D2D3DAB-6EB6-463D-B186-E875DA48DF9F} {AF25D7E8-2F55-4431-BCE1-7C3E3C0E74E1} = {87A17015-9338-431E-B338-57BDA03984C1} {EACF1BF1-CB21-4D62-942C-3488F60B8D70} = {87A17015-9338-431E-B338-57BDA03984C1} - {3E9C7751-EE97-4820-BFEF-BA5F532A45C9} = {1BD5D488-707E-4030-8AE8-80D93D04963F} - {9C7B55A6-AF7F-4D26-AB5B-297B7FF25B6D} = {3E9C7751-EE97-4820-BFEF-BA5F532A45C9} + {5BCEC32E-990E-4DE5-945F-BD27326A7418} = {1BD5D488-707E-4030-8AE8-80D93D04963F} EndGlobalSection EndGlobal diff --git a/Sync.xml b/Sync.xml index 2a66164a2..b5f910117 100644 --- a/Sync.xml +++ b/Sync.xml @@ -33,15 +33,6 @@ - - - - - - - - - diff --git a/src/MsgPack.Unity.Full/MsgPack.Unity.Full.csproj b/src/MsgPack.Unity.Full/MsgPack.Unity.Full.csproj index fda078fec..e59785bce 100644 --- a/src/MsgPack.Unity.Full/MsgPack.Unity.Full.csproj +++ b/src/MsgPack.Unity.Full/MsgPack.Unity.Full.csproj @@ -36,7 +36,8 @@ bin\CodeAnalysis\ TRACE;UNITY_IPHONE;MSGPACK_UNITY_FULL;AOT;CODE_ANALYSIS - + + true 3001,3002 pdbonly @@ -163,6 +164,9 @@ MessageTypeException.cs + + MPContract.cs + Packer.cs @@ -727,9 +731,6 @@ UnpackingStreamReader.cs - - MPContract.cs - True True diff --git a/src/MsgPack.Unity/MsgPack.Unity.csproj b/src/MsgPack.Unity/MsgPack.Unity.csproj index ef026ff4e..775702b14 100644 --- a/src/MsgPack.Unity/MsgPack.Unity.csproj +++ b/src/MsgPack.Unity/MsgPack.Unity.csproj @@ -185,6 +185,9 @@ MessageTypeException.cs + + MPContract.cs + Packer.cs @@ -737,9 +740,6 @@ UnpackingStreamReader.cs - - MPContract.cs - diff --git a/src/netstandard/BufferedStream.cs b/src/MsgPack/BufferedStream.cs similarity index 100% rename from src/netstandard/BufferedStream.cs rename to src/MsgPack/BufferedStream.cs diff --git a/src/netstandard/MPContract.cs b/src/MsgPack/MPContract.cs similarity index 100% rename from src/netstandard/MPContract.cs rename to src/MsgPack/MPContract.cs diff --git a/src/MsgPack/MsgPack.csproj b/src/MsgPack/MsgPack.csproj index 6b663f53b..0921e3de6 100644 --- a/src/MsgPack/MsgPack.csproj +++ b/src/MsgPack/MsgPack.csproj @@ -1,5 +1,5 @@  - + Debug AnyCPU @@ -10,677 +10,479 @@ Properties MsgPack MsgPack - v4.6 512 - - + net45;net462;netstandard1.1;netstandard1.3;MonoAndroid10;Xamarin.iOS10 + TRACE + prompt + 4 + AllRules.ruleset + AnyCPU + false + true + ..\MsgPack.snk + ../../msgpack.nuspec + true + false + + + ..\..\bin\$(TargetFramework)\ + + + ..\..\bin\ + + + bin\$(Configuration)\$(TargetFramework)\ + + + bin\$(Configuration)\$(TargetFramework)\ + + + bin\$(Configuration)\ + + + $(OutputPath)\MsgPack.XML + + + $(OutputPath)\$(TargetFramework)\MsgPack.XML + + + $(DefineConstants);FEATURE_TAP;FEATURE_CONCURRENT + + + $(DefineConstants);NETFX_45 + + + $(DefineConstants);__MOBILE__;AOT;XAMARIN + + + $(DefineConstants);__ANDROID__ + $(VsInstallRoot)\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\ + true + + + $(DefineConstants);__IOS__ + $(VsInstallRoot)\Common7\IDE\ReferenceAssemblies\Microsoft\Framework\ + true + + + $(DefineConstants);NETFX_CORE;WINDOWS_UWP;NETSTANDARD1_3;AOT true full false - bin\Debug\ - TRACE;DEBUG;FEATURE_TAP;FEATURE_CONCURRENT - prompt - 4 + $(DefineConstants);DEBUG bin\Debug\MsgPack.XML - AllRules.ruleset - false pdbonly true - ..\..\bin\net46\ - TRACE;FEATURE_TAP;FEATURE_CONCURRENT - prompt - 4 - ..\..\bin\net46\MsgPack.XML - false + $(DefineConstants) - bin\Performance Test\ - TRACE;FEATURE_TAP;FEATURE_CONCURRENT;PERFORMANCE_TEST - bin\Release\MsgPack.XML + $(DefineConstants);PERFORMANCE_TEST true pdbonly - AnyCPU - prompt true true true - 4 - false - - - true - - - ..\MsgPack.snk - bin\Instrument\ - TRACE;FEATURE_TAP;FEATURE_CONCURRENT;PERFORMANCE_TEST - bin\Instrument\MsgPack.XML + $(DefineConstants);PERFORMANCE_TEST false pdbonly - AnyCPU - prompt true true false - 4 - false - bin\CodeAnalysis\ - TRACE;FEATURE_TAP;FEATURE_CONCURRENT;CODE_ANALYSIS - - + $(DefineConstants);CODE_ANALYSIS true pdbonly - AnyCPU - prompt false true - 4 - false AllRules.ruleset true - - bin\CoreProfile\ - TRACE;FEATURE_TAP;FEATURE_CONCURRENT;CORE_PROFILE - bin\CoreProfile\MsgPack.XML - true - pdbonly - AnyCPU - prompt - 4 - false - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Properties\CommonAssemblyInfo.cs - - - - - - Code - - - - - - - - - - - Code - - - + ItemsUnpacker.Unpacking.tt True True - + True True ItemsUnpacker.Read.tt - - - Code - - - - - - - - - - - - - - - - - + True True Packer.Packing.tt - - + True True PackerUnpackerExtensions.tt - - - + True True MessagePackObject.tt - - - + True True Packer.Nullable.tt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + True True ArraySerializer.Primitives.tt - - - - - - - - - Code - - - - + True True SimdTypeSerializers.tt - - - - - - - - - - - - - - - - - - + MessagePackRuntimeTypeAttributes.tt True True - + True True MessagePackKnownTypeAttributes.tt - - - - - - - - - - + TeeTextWriter.tt True True - + True True PackHelperParameters.tt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + True True NullTextWriter.tt - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + True True DefaultSerializers.tt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + True True FromExpression.ToMethod.tt - + True True _UnpackHelpers.direct.tt - - - - - Code - - - - - - - - - - - + True True SerializerRepository.defaults.tt - - - - - - - - - - - - - - - + True True UnpackHelperParameters.tt - + True True UnpackHelpers.facade.tt - - + True True UnpackHelpers.direct.tt - - - - - - - Code - - + True True Unpacking.Numerics.tt - + Unpacking.Others.tt - Code True True - - - Code - - - - - - - - - - + Unpacker.Unpacking.tt True True - + ItemsUnpacker.Skipping.tt True True - + SubtreeUnpacker.Unpacking.tt True True - MsgPack.snk - + TextTemplatingFileGenerator DefaultSerializers.cs - + ArraySerializer.Primitives.cs TextTemplatingFileGenerator - + TextTemplatingFileGenerator FromExpression.ToMethod.cs - + TextTemplatingFileGenerator MessagePackRuntimeTypeAttributes.cs - + TextTemplatingFileGenerator MessagePackKnownTypeAttributes.cs - + TextTemplatingFileGenerator _UnpackHelpers.direct.cs - + TextTemplatingFileGenerator SerializerRepository.defaults.cs - + TextTemplatingFileGenerator UnpackHelpers.direct.cs - + TextTemplatingFileGenerator Unpacking.Numerics.cs - + TextTemplatingFileGenerator Unpacking.Others.cs - + TextTemplatingFileGenerator MessagePackObject.cs - + TextTemplatingFileGenerator Packer.Nullable.cs - + TextTemplatingFileGenerator Unpacker.Unpacking.cs - + TextTemplatingFileGenerator ItemsUnpacker.Skipping.cs - + TextTemplatingFileGenerator SubtreeUnpacker.Unpacking.cs - - - - - - - - + TextTemplatingFileGenerator ItemsUnpacker.Read.cs - - + + TextTemplatingFileGenerator ItemsUnpacker.Unpacking.cs - - + + TextTemplatingFileGenerator Packer.Packing.cs - - + + TextTemplatingFileGenerator PackerUnpackerExtensions.cs - - + + TextTemplatingFileGenerator TeeTextWriter.cs - - + + TextTemplatingFileGenerator NullTextWriter.cs - - + + TextTemplatingFileGenerator PackHelperParameters.cs - - + + TextTemplatingFileGenerator UnpackHelperParameters.cs - - + + TextTemplatingFileGenerator UnpackHelpers.facade.cs - - + + TextTemplatingFileGenerator SimdTypeSerializers.cs - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + + + \ No newline at end of file diff --git a/src/netstandard/NetStandardCompatibility.cs b/src/MsgPack/NetStandardCompatibility.cs similarity index 100% rename from src/netstandard/NetStandardCompatibility.cs rename to src/MsgPack/NetStandardCompatibility.cs diff --git a/src/MsgPack/Properties/AssemblyInfo.cs b/src/MsgPack/Properties/AssemblyInfo.cs index 89b386ff6..943dd35b9 100644 --- a/src/MsgPack/Properties/AssemblyInfo.cs +++ b/src/MsgPack/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -#region -- License Terms -- +#region -- License Terms -- // // MessagePack for CLI // @@ -23,12 +23,35 @@ using System.Security; [assembly: AssemblyTitle( "MessagePack for CLI(.NET/Mono)" )] -[assembly: AssemblyDescription( "MessagePack for CLI(.NET/Mono) packing/unpacking library." )] +[assembly: AssemblyDescription( "MessagePack for CLI(.NET/Mono) packing/unpacking library for" + +#if NET4_5 +".NET Framework 4.5" +#elif WINDOWS_UWP +"UWP" +#elif NETSTANDARD1_1 +".NET Standard 1.1" +#elif NETSTANDARD1_3 +".NET Standard 1.3" +#elif XAMARIN +"Xamarin for " + +#if __ANDROID__ +"Android" +#elif __IOS__ +"iOS" +#else +#error Unexpected Xamarin! +#endif // XAMARIN +#else +".NET Framework 4.6" +#endif // NET4_5.. + )] -[assembly: AssemblyFileVersion( "0.7.2259.1047" )] +[assembly: AssemblyFileVersion( "0.9.2259.1047" )] +#if !NETSTANDARD1_1 && !NETSTANDARD1_3 [assembly: SecurityRules( SecurityRuleSet.Level2, SkipVerificationInFullTrust = true )] [assembly: AllowPartiallyTrustedCallers] +#endif #if DEBUG || PERFORMANCE_TEST [assembly: InternalsVisibleTo( "MsgPack.UnitTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] diff --git a/src/MsgPack/Serialization/MessagePackSerializer.Factories.cs b/src/MsgPack/Serialization/MessagePackSerializer.Factories.cs index 2ba87ab4a..c3632cf44 100644 --- a/src/MsgPack/Serialization/MessagePackSerializer.Factories.cs +++ b/src/MsgPack/Serialization/MessagePackSerializer.Factories.cs @@ -210,7 +210,7 @@ internal static MessagePackSerializer CreateInternal( SerializationContext Contract.Ensures( Contract.Result>() != null ); #endif // DEBUG -#if DEBUG && !AOT && !SILVERLIGHT +#if DEBUG && !AOT && !SILVERLIGHT && !NETSTANDARD1_1 SerializerDebugging.TraceEmitEvent( "SerializationContext::CreateInternal<{0}>(@{1}, {2})", typeof( T ), @@ -218,7 +218,7 @@ internal static MessagePackSerializer CreateInternal( SerializationContext schema == null ? "null" : schema.DebugString ); -#endif // DEBUG && !AOT && !SILVERLIGHT +#endif // DEBUG && !AOT && !SILVERLIGHT && !NETSTANDARD1_1 Type concreteType = null; CollectionTraits collectionTraits = #if AOT diff --git a/src/MsgPack/Serialization/SerializerDebugging.cs b/src/MsgPack/Serialization/SerializerDebugging.cs index ad49a6d9b..ead3626a8 100644 --- a/src/MsgPack/Serialization/SerializerDebugging.cs +++ b/src/MsgPack/Serialization/SerializerDebugging.cs @@ -1,4 +1,4 @@ -#region -- License Terms -- +#region -- License Terms -- // // MessagePack for CLI // @@ -108,7 +108,7 @@ public static bool AvoidsGenericSerializer } #endif // DEBUG -#if !AOT && !SILVERLIGHT +#if !AOT && !SILVERLIGHT && !NETSTANDARD1_1 #if DEBUG [ThreadStatic] private static StringWriter _ilTraceWriter; @@ -161,7 +161,7 @@ public static void TraceEmitEvent( string format, params object[] args ) Tracer.Emit.TraceEvent( Tracer.EventType.DefineType, Tracer.EventId.DefineType, format, args ); } #endif // DEBUG -#endif // !AOT && !SILVERLIGHT +#endif // !AOT && !SILVERLIGHT && !NETSTANDARD1_1 /// /// Traces the polymorphic schema event. @@ -186,7 +186,7 @@ public static void TracePolimorphicSchemaEvent( string format, MemberInfo member #if DEBUG -#if !AOT && !SILVERLIGHT +#if !AOT && !SILVERLIGHT && !NETSTANDARD1_1 /// /// Flushes the trace data. /// @@ -202,7 +202,7 @@ public static void FlushTraceData() _ilTraceWriter.GetStringBuilder().Length = 0; } -#if !NETSTANDARD1_1 && !NETSTANDARD1_3 +#if !NETSTANDARD1_3 [ThreadStatic] private static AssemblyBuilder _assemblyBuilder; @@ -366,8 +366,8 @@ public static void Reset() _codeWriter = null; ResetDependentAssemblies(); } -#endif // !NETSTANDARD1_1 && !NETSTANDARD1_3 -#endif // !AOT && !SILVERLIGHT +#endif // !NETSTANDARD1_3 +#endif // !AOT && !SILVERLIGHT && !NETSTANDARD1_1 #if NETFX_35 || UNITY || SILVERLIGHT private static int _useLegacyNullMapEntryHandling; diff --git a/src/MsgPack/Serialization/SerializerGenerator.cs b/src/MsgPack/Serialization/SerializerGenerator.cs index 43bbb2f88..a04503c54 100644 --- a/src/MsgPack/Serialization/SerializerGenerator.cs +++ b/src/MsgPack/Serialization/SerializerGenerator.cs @@ -441,9 +441,9 @@ public IEnumerable Generate( IEnumerable t SerializationMethod = configuration.SerializationMethod, SerializerOptions = { -#if !NETFX_35 +#if FEATURE_TAP WithAsync = configuration.WithAsync, -#endif // !NETFX_35 +#endif // FEATURE_TAP GeneratorOption = SerializationMethodGeneratorOption.CanDump, EmitterFlavor = this.EmitterFlavor }, From dd133d1f211984c7427a7177fc4151c724b8502d Mon Sep 17 00:00:00 2001 From: yfakariya Date: Sun, 26 Mar 2017 23:31:45 +0900 Subject: [PATCH 03/13] Migrate Xamarin projects. --- MsgPack.Xamarin.sln | 198 +++-- Sync.xml | 20 - .../MsgPack.Xamarin.Android.csproj | 771 ------------------ .../Properties/AssemblyInfo.cs | 38 - .../Resources/Resource.designer.cs | 0 .../MsgPack.Xamarin.iOS.csproj | 768 ----------------- .../Properties/AssemblyInfo.cs | 40 - src/MsgPack/MsgPack.csproj | 1 + src/MsgPack/Properties/AssemblyInfo.cs | 10 +- .../MsgPack.UnitTest.Xamarin.Android.csproj | 12 +- .../MsgPack.UnitTest.Xamarin.iOS.csproj | 8 +- 11 files changed, 151 insertions(+), 1715 deletions(-) delete mode 100644 src/MsgPack.Xamarin.Android/MsgPack.Xamarin.Android.csproj delete mode 100644 src/MsgPack.Xamarin.Android/Properties/AssemblyInfo.cs delete mode 100644 src/MsgPack.Xamarin.Android/Resources/Resource.designer.cs delete mode 100644 src/MsgPack.Xamarin.iOS/MsgPack.Xamarin.iOS.csproj delete mode 100644 src/MsgPack.Xamarin.iOS/Properties/AssemblyInfo.cs diff --git a/MsgPack.Xamarin.sln b/MsgPack.Xamarin.sln index c5653bb14..b3ed6f8fc 100644 --- a/MsgPack.Xamarin.sln +++ b/MsgPack.Xamarin.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26228.9 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{60EC42E9-D79B-4ADF-8F80-4DCD580061FD}" ProjectSection(SolutionItems) = preProject @@ -10,10 +10,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{60EC42 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{1BD5D488-707E-4030-8AE8-80D93D04963F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Mono", "Mono", "{BA5E7D16-23AB-44B5-BAF5-6E9C9F51E67A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.Xamarin.Android", "src\MsgPack.Xamarin.Android\MsgPack.Xamarin.Android.csproj", "{A6210C9C-1614-46C5-97B2-6A37032AF143}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{87A17015-9338-431E-B338-57BDA03984C1}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.Xamarin.Android", "test\MsgPack.UnitTest.Xamarin.Android\MsgPack.UnitTest.Xamarin.Android.csproj", "{5EDECDB4-5179-4441-974F-EC26B4F54528}" @@ -26,7 +22,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{DB9CF5 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.Xamarin.iOS", "test\MsgPack.UnitTest.Xamarin.iOS\MsgPack.UnitTest.Xamarin.iOS.csproj", "{2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.Xamarin.iOS", "src\MsgPack.Xamarin.iOS\MsgPack.Xamarin.iOS.csproj", "{C9710C8A-2FA9-47FE-812C-992C283471CC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MsgPack", "src\MsgPack\MsgPack.csproj", "{5BCEC32E-990E-4DE5-945F-BD27326A7418}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -38,40 +34,28 @@ Global AppStore|iPhone = AppStore|iPhone AppStore|iPhoneSimulator = AppStore|iPhoneSimulator AppStore|Mixed Platforms = AppStore|Mixed Platforms + CodeAnalysis|Any CPU = CodeAnalysis|Any CPU + CodeAnalysis|iPhone = CodeAnalysis|iPhone + CodeAnalysis|iPhoneSimulator = CodeAnalysis|iPhoneSimulator + CodeAnalysis|Mixed Platforms = CodeAnalysis|Mixed Platforms Debug|Any CPU = Debug|Any CPU Debug|iPhone = Debug|iPhone Debug|iPhoneSimulator = Debug|iPhoneSimulator Debug|Mixed Platforms = Debug|Mixed Platforms + Instrument|Any CPU = Instrument|Any CPU + Instrument|iPhone = Instrument|iPhone + Instrument|iPhoneSimulator = Instrument|iPhoneSimulator + Instrument|Mixed Platforms = Instrument|Mixed Platforms + PerformanceTest|Any CPU = PerformanceTest|Any CPU + PerformanceTest|iPhone = PerformanceTest|iPhone + PerformanceTest|iPhoneSimulator = PerformanceTest|iPhoneSimulator + PerformanceTest|Mixed Platforms = PerformanceTest|Mixed Platforms Release|Any CPU = Release|Any CPU Release|iPhone = Release|iPhone Release|iPhoneSimulator = Release|iPhoneSimulator Release|Mixed Platforms = Release|Mixed Platforms EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.AppStore|Any CPU.Build.0 = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Release|Any CPU.Build.0 = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Release|iPhone.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A6210C9C-1614-46C5-97B2-6A37032AF143}.Release|Mixed Platforms.Build.0 = Release|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Ad-Hoc|Any CPU.Deploy.0 = Release|Any CPU @@ -88,6 +72,18 @@ Global {5EDECDB4-5179-4441-974F-EC26B4F54528}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.AppStore|Mixed Platforms.Deploy.0 = Release|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|Any CPU.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|Any CPU.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|iPhone.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|iPhone.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|iPhone.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|iPhoneSimulator.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|Mixed Platforms.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.CodeAnalysis|Mixed Platforms.Deploy.0 = Debug|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Debug|Any CPU.Build.0 = Debug|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Debug|Any CPU.Deploy.0 = Debug|Any CPU @@ -96,6 +92,30 @@ Global {5EDECDB4-5179-4441-974F-EC26B4F54528}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Debug|Mixed Platforms.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|Any CPU.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|Any CPU.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|Any CPU.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|iPhone.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|iPhone.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|iPhone.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|iPhoneSimulator.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|Mixed Platforms.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.Instrument|Mixed Platforms.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|Any CPU.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|Any CPU.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|Any CPU.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|iPhone.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|iPhone.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|iPhone.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|iPhoneSimulator.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|iPhoneSimulator.Deploy.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|Mixed Platforms.Build.0 = Debug|Any CPU + {5EDECDB4-5179-4441-974F-EC26B4F54528}.PerformanceTest|Mixed Platforms.Deploy.0 = Debug|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Release|Any CPU.ActiveCfg = Release|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Release|iPhone.ActiveCfg = Release|Any CPU {5EDECDB4-5179-4441-974F-EC26B4F54528}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU @@ -115,6 +135,14 @@ Global {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.AppStore|Mixed Platforms.ActiveCfg = AppStore|iPhone {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.AppStore|Mixed Platforms.Build.0 = AppStore|iPhone + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.CodeAnalysis|Any CPU.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.CodeAnalysis|Any CPU.Build.0 = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.CodeAnalysis|iPhone.ActiveCfg = Release|iPhone + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.CodeAnalysis|iPhone.Build.0 = Release|iPhone + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.CodeAnalysis|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.CodeAnalysis|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.CodeAnalysis|Mixed Platforms.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.CodeAnalysis|Mixed Platforms.Build.0 = Release|iPhoneSimulator {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Debug|Any CPU.ActiveCfg = Debug|iPhone {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Debug|iPhone.ActiveCfg = Debug|iPhone {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Debug|iPhone.Build.0 = Debug|iPhone @@ -122,54 +150,92 @@ Global {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Debug|Mixed Platforms.ActiveCfg = Debug|iPhone {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Debug|Mixed Platforms.Build.0 = Debug|iPhone + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Instrument|Any CPU.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Instrument|Any CPU.Build.0 = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Instrument|iPhone.ActiveCfg = Release|iPhone + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Instrument|iPhone.Build.0 = Release|iPhone + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Instrument|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Instrument|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Instrument|Mixed Platforms.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Instrument|Mixed Platforms.Build.0 = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.PerformanceTest|Any CPU.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.PerformanceTest|Any CPU.Build.0 = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.PerformanceTest|iPhone.ActiveCfg = Release|iPhone + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.PerformanceTest|iPhone.Build.0 = Release|iPhone + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.PerformanceTest|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.PerformanceTest|iPhoneSimulator.Build.0 = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.PerformanceTest|Mixed Platforms.ActiveCfg = Release|iPhoneSimulator + {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.PerformanceTest|Mixed Platforms.Build.0 = Release|iPhoneSimulator {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Release|Any CPU.ActiveCfg = Release|iPhone {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Release|iPhone.ActiveCfg = Release|iPhone {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Release|iPhone.Build.0 = Release|iPhone {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C}.Release|Mixed Platforms.ActiveCfg = Release|iPhone - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Ad-Hoc|Mixed Platforms.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Ad-Hoc|Mixed Platforms.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.AppStore|Any CPU.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.AppStore|iPhone.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.AppStore|Mixed Platforms.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.AppStore|Mixed Platforms.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Debug|iPhone.Build.0 = Debug|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Release|Any CPU.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Release|iPhone.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Release|iPhone.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {C9710C8A-2FA9-47FE-812C-992C283471CC}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Ad-Hoc|Any CPU.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Ad-Hoc|Any CPU.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Ad-Hoc|iPhone.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Ad-Hoc|iPhone.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Ad-Hoc|iPhoneSimulator.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Ad-Hoc|iPhoneSimulator.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Ad-Hoc|Mixed Platforms.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Ad-Hoc|Mixed Platforms.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.AppStore|Any CPU.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.AppStore|Any CPU.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.AppStore|iPhone.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.AppStore|iPhone.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.AppStore|iPhoneSimulator.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.AppStore|iPhoneSimulator.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.AppStore|Mixed Platforms.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.AppStore|Mixed Platforms.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|iPhone.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|iPhone.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|iPhoneSimulator.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|iPhoneSimulator.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Mixed Platforms.ActiveCfg = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.CodeAnalysis|Mixed Platforms.Build.0 = CodeAnalysis|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|iPhone.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|Any CPU.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|Any CPU.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|iPhone.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|iPhone.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|iPhoneSimulator.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|iPhoneSimulator.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|Mixed Platforms.ActiveCfg = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Instrument|Mixed Platforms.Build.0 = Instrument|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Any CPU.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Any CPU.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|iPhone.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|iPhone.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|iPhoneSimulator.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|iPhoneSimulator.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Mixed Platforms.ActiveCfg = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.PerformanceTest|Mixed Platforms.Build.0 = PerformanceTest|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Any CPU.Build.0 = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|iPhone.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|iPhone.Build.0 = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|Mixed Platforms.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {BA5E7D16-23AB-44B5-BAF5-6E9C9F51E67A} = {1BD5D488-707E-4030-8AE8-80D93D04963F} - {A6210C9C-1614-46C5-97B2-6A37032AF143} = {BA5E7D16-23AB-44B5-BAF5-6E9C9F51E67A} {5EDECDB4-5179-4441-974F-EC26B4F54528} = {87A17015-9338-431E-B338-57BDA03984C1} {2B75A9C8-F891-4F78-9E27-8B6FE972DE6C} = {87A17015-9338-431E-B338-57BDA03984C1} - {C9710C8A-2FA9-47FE-812C-992C283471CC} = {BA5E7D16-23AB-44B5-BAF5-6E9C9F51E67A} + {5BCEC32E-990E-4DE5-945F-BD27326A7418} = {1BD5D488-707E-4030-8AE8-80D93D04963F} EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution StartupItem = src\MsgPack.Xamarin.Android\MsgPack.Xamarin.Android.csproj diff --git a/Sync.xml b/Sync.xml index b5f910117..bdb46f1fc 100644 --- a/Sync.xml +++ b/Sync.xml @@ -72,26 +72,6 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/src/MsgPack.Xamarin.Android/MsgPack.Xamarin.Android.csproj b/src/MsgPack.Xamarin.Android/MsgPack.Xamarin.Android.csproj deleted file mode 100644 index 47e614a46..000000000 --- a/src/MsgPack.Xamarin.Android/MsgPack.Xamarin.Android.csproj +++ /dev/null @@ -1,771 +0,0 @@ - - - - Debug - AnyCPU - {A6210C9C-1614-46C5-97B2-6A37032AF143} - {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - MsgPack - Resources\Resource.designer.cs - Resource - Resources - Assets - False - MsgPack - true - ..\MsgPack.snk - v2.3 - - - true - full - false - bin\Debug - DEBUG;__MOBILE__;__ANDROID__;AOT;XAMARIN;FEATURE_TAP;FEATURE_CONCURRENT - prompt - 4 - None - false - bin\Debug\MsgPack.xml - - - true - ..\..\bin\MonoAndroid10\ - __MOBILE__;__ANDROID__;AOT;XAMARIN;FEATURE_TAP;FEATURE_CONCURRENT - prompt - 4 - false - false - ..\..\bin\MonoAndroid10\MsgPack.xml - - - - - - - - - - - Properties\CommonAssemblyInfo.cs - - - AsyncReadResult.cs - - - AsyncReadResult`1.cs - - - BigEndianBinary.cs - - - Binary.cs - - - BufferManager.cs - - - CollectionDebuggerProxy`1.cs - - - CollectionOperation.cs - - - DictionaryDebuggerProxy`2.cs - - - Float32Bits.cs - - - Float64Bits.cs - - - GlobalSuppressions.cs - - - IAsyncPackable.cs - - - IAsyncUnpackable.cs - - - InvalidMessagePackStreamException.cs - - - IPackable.cs - - - ItemsUnpacker.cs - - - ItemsUnpacker.Read.cs - - - ItemsUnpacker.Skipping.cs - - - ItemsUnpacker.Unpacking.cs - - - IUnpackable.cs - - - KnownExtTypeCode.cs - - - KnownExtTypeName.cs - - - MessageNotSupportedException.cs - - - MessagePackCode.cs - - - MessagePackConvert.cs - - - MessagePackExtendedTypeObject.cs - - - MessagePackObject.cs - - - MessagePackObject.Utilities.cs - - - MessagePackObjectDictionary.cs - - - MessagePackObjectDictionary.Enumerator.cs - - - MessagePackObjectDictionary.KeySet.cs - - - MessagePackObjectDictionary.KeySet.Enumerator.cs - - - MessagePackObjectDictionary.ValueCollection.cs - - - MessagePackObjectDictionary.ValueCollection.Enumerator.cs - - - MessagePackObjectEqualityComparer.cs - - - MessagePackString.cs - - - MessageTypeException.cs - - - Packer.cs - - - Packer.Nullable.cs - - - Packer.Packing.cs - - - PackerCompatibilityOptions.cs - - - PackerUnpackerExtensions.cs - - - PackerUnpackerStreamOptions.cs - - - PackingOptions.cs - - - PreserveAttribute.cs - - - ReflectionAbstractions.cs - - - Serialization\CollectionDetailedKind.cs - - - Serialization\CollectionKind.cs - - - Serialization\CollectionSerializers\CollectionMessagePackSerializerBase`2.cs - - - Serialization\CollectionSerializers\CollectionMessagePackSerializer`2.cs - - - Serialization\CollectionSerializers\CollectionSerializerHelpers.cs - - - Serialization\CollectionSerializers\DictionaryMessagePackSerializerBase`3.cs - - - Serialization\CollectionSerializers\DictionaryMessagePackSerializer`3.cs - - - Serialization\CollectionSerializers\EnumerableMessagePackSerializerBase`2.cs - - - Serialization\CollectionSerializers\EnumerableMessagePackSerializer`2.cs - - - Serialization\CollectionSerializers\ICollectionInstanceFactory.cs - - - Serialization\CollectionSerializers\NonGenericCollectionMessagePackSerializer`1.cs - - - Serialization\CollectionSerializers\NonGenericDictionaryMessagePackSerializer`1.cs - - - Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializerBase`1.cs - - - Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializer`1.cs - - - Serialization\CollectionSerializers\NonGenericListMessagePackSerializer`1.cs - - - Serialization\CollectionSerializers\ReadOnlyCollectionMessagePackSerializer`2.cs - - - Serialization\CollectionSerializers\ReadOnlyDictionaryMessagePackSerializer`3.cs - - - Serialization\CollectionTraitOptions.cs - - - Serialization\CollectionTraits.cs - - - Serialization\DataMemberContract.cs - - - Serialization\DateTimeConversionMethod.cs - - - Serialization\DateTimeMemberConversionMethod.cs - - - Serialization\DateTimeMessagePackSerializerHelpers.cs - - - Serialization\DefaultConcreteTypeRepository.cs - - - Serialization\DefaultSerializers\AbstractCollectionMessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\AbstractCollectionSerializerHelper.cs - - - Serialization\DefaultSerializers\AbstractDictionaryMessagePackSerializer`3.cs - - - Serialization\DefaultSerializers\AbstractEnumerableMessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\AbstractNonGenericCollectionMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\AbstractNonGenericDictionaryMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\AbstractNonGenericEnumerableMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\AbstractNonGenericListMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\AbstractReadOnlyCollectionMessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\AbstractReadOnlyDictionaryMessagePackSerializer`3.cs - - - Serialization\DefaultSerializers\ArraySegmentMessageSerializer.cs - - - Serialization\DefaultSerializers\ArraySerializer.cs - - - Serialization\DefaultSerializers\ArraySerializer.Primitives.cs - - - Serialization\DefaultSerializers\ArraySerializer`1.cs - - - Serialization\DefaultSerializers\DateTimeMessagePackSerializerProvider.cs - - - Serialization\DefaultSerializers\DateTimeOffsetMessagePackSerializer.cs - - - Serialization\DefaultSerializers\DateTimeOffsetMessagePackSerializerProvider.cs - - - Serialization\DefaultSerializers\DefaultSerializers.cs - - - Serialization\DefaultSerializers\FSharpCollectionSerializer`2.cs - - - Serialization\DefaultSerializers\FSharpMapSerializer`3.cs - - - Serialization\DefaultSerializers\GenericSerializer.cs - - - Serialization\DefaultSerializers\ImmutableCollectionSerializer`2.cs - - - Serialization\DefaultSerializers\ImmutableDictionarySerializer`3.cs - - - Serialization\DefaultSerializers\ImmutableStackSerializer`2.cs - - - Serialization\DefaultSerializers\InternalDateTimeExtensions.cs - - - Serialization\DefaultSerializers\MessagePackObjectExtensions.cs - - - Serialization\DefaultSerializers\MsgPack_MessagePackExtendedTypeObjectMessagePackSerializer.cs - - - Serialization\DefaultSerializers\MsgPack_MessagePackObjectDictionaryMessagePackSerializer.cs - - - Serialization\DefaultSerializers\MsgPack_MessagePackObjectMessagePackSerializer.cs - - - Serialization\DefaultSerializers\MultidimensionalArraySerializer`1.cs - - - Serialization\DefaultSerializers\NativeDateTimeMessagePackSerializer.cs - - - Serialization\DefaultSerializers\NullableMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_ArraySegment_1MessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_ByteArrayMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_CharArrayMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_DictionaryEntryMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_Dictionary_2MessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_KeyValuePair_2MessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_ListOfMessagePackObjectMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_List_1MessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_Queue_1MessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_Stack_1MessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_Collections_QueueMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_Specialized_NameValueCollectionMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_StackMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_DBNullMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Globalization_CultureInfoMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Numerics_ComplexMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_ObjectMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_StringMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Text_StringBuilderMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_UriMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_VersionMessagePackSerializer.cs - - - Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs - - - Serialization\DictionaryKeyTransformers.cs - - - Serialization\DictionarySerlaizationOptions.cs - - - Serialization\EmitterFlavor.cs - - - Serialization\EnumMemberSerializationMethod.cs - - - Serialization\EnumMessagePackSerializerHelpers.cs - - - Serialization\EnumMessagePackSerializerProvider.cs - - - Serialization\EnumMessagePackSerializer`1.cs - - - Serialization\EnumNameTransformers.cs - - - Serialization\EnumSerializationMethod.cs - - - Serialization\EnumSerializationOptions.cs - - - Serialization\ExtTypeCodeMapping.cs - - - Serialization\ICustomizableEnumSerializer.cs - - - Serialization\IdentifierUtility.cs - - - Serialization\IMessagePackSerializer.cs - - - Serialization\IMessagePackSingleObjectSerializer.cs - - - Serialization\INilImplicationHandlerOnUnpackedParameter.cs - - - Serialization\INilImplicationHandlerParameter.cs - - - Serialization\KeyNameTransformers.cs - - - Serialization\LazyDelegatingMessagePackSerializer`1.cs - - - Serialization\MessagePackDateTimeMemberAttribute.cs - - - Serialization\MessagePackDeserializationConstructorAttribute.cs - - - Serialization\MessagePackEnumAttribute.cs - - - Serialization\MessagePackEnumMemberAttribute.cs - - - Serialization\MessagePackIgnoreAttribute.cs - - - Serialization\MessagePackKnownTypeAttributes.cs - - - Serialization\MessagePackMemberAttribute.cs - - - Serialization\MessagePackRuntimeTypeAttributes.cs - - - Serialization\MessagePackSerializer.cs - - - Serialization\MessagePackSerializer.Factories.cs - - - Serialization\MessagePackSerializerExtensions.cs - - - Serialization\MessagePackSerializerProvider.cs - - - Serialization\MessagePackSerializer`1.cs - - - Serialization\NilImplication.cs - - - Serialization\NilImplicationHandler`4.cs - - - Serialization\NullTextWriter.cs - - - Serialization\PackHelperParameters.cs - - - Serialization\PackHelpers.cs - - - Serialization\PolymorphicTypeVerificationContext.cs - - - Serialization\Polymorphic\IPolymorphicDeserializer.cs - - - Serialization\Polymorphic\IPolymorphicHelperAttributes.cs - - - Serialization\Polymorphic\KnownTypePolymorphicMessagePackSerializer`1.cs - - - Serialization\Polymorphic\PolymorphicSerializerProvider`1.cs - - - Serialization\Polymorphic\RuntimeTypeVerifier.cs - - - Serialization\Polymorphic\TypeEmbedingPolymorphicMessagePackSerializer`1.cs - - - Serialization\Polymorphic\TypeInfoEncoder.cs - - - Serialization\Polymorphic\TypeInfoEncoding.cs - - - Serialization\PolymorphismSchema.Constructors.cs - - - Serialization\PolymorphismSchema.cs - - - Serialization\PolymorphismSchema.Internals.cs - - - Serialization\PolymorphismSchemaChildrenType.cs - - - Serialization\PolymorphismTarget.cs - - - Serialization\PolymorphismType.cs - - - Serialization\ReflectionExtensions.CollectionTraits.cs - - - Serialization\ReflectionExtensions.cs - - - Serialization\ReflectionExtensions.InvokePreservingExtension.cs - - - Serialization\ReflectionHelpers.cs - - - Serialization\ReflectionSerializers\ReflectionCollectionMessagePackSerializer`2.cs - - - Serialization\ReflectionSerializers\ReflectionDictionaryMessagePackSerializer`3.cs - - - Serialization\ReflectionSerializers\ReflectionEnumerableMessagePackSerializer`2.cs - - - Serialization\ReflectionSerializers\ReflectionEnumMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionNilImplicationHandler.cs - - - Serialization\ReflectionSerializers\ReflectionNonGeenricCollectionMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionNonGeenricEnumerableMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionNonGenericDictionaryMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionNonGenericListMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionObjectMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionSerializerHelper.cs - - - Serialization\ReflectionSerializers\ReflectionSerializerNilImplicationHandlerOnUnpackedParameter.cs - - - Serialization\ReflectionSerializers\ReflectionSerializerNilImplicationHandlerParameter.cs - - - Serialization\ReflectionSerializers\ReflectionTupleMessagePackSerializer`1.cs - - - Serialization\Reflection\GenericTypeExtensions.cs - - - Serialization\Reflection\ReflectionExtensions.cs - - - Serialization\ResolveSerializerEventArgs.cs - - - Serialization\SerializationCompatibilityOptions.cs - - - Serialization\SerializationContext.cs - - - Serialization\SerializationContext.ExtTypeCodes.cs - - - Serialization\SerializationExceptions.cs - - - Serialization\SerializationMethod.cs - - - Serialization\SerializationMethodGeneratorOption.cs - - - Serialization\SerializationTarget.cs - - - Serialization\SerializerCapabilities.cs - - - Serialization\SerializerDebugging.cs - - - Serialization\SerializerOptions.cs - - - Serialization\SerializerRegistrationOptions.cs - - - Serialization\SerializerRepository.cs - - - Serialization\SerializerRepository.defaults.cs - - - Serialization\SerializerTypeKeyRepository.cs - - - Serialization\SerializingMember.cs - - - Serialization\TypeKeyRepository.cs - - - Serialization\UnpackHelperParameters.cs - - - Serialization\UnpackHelpers.cs - - - Serialization\UnpackHelpers.direct.cs - - - Serialization\UnpackHelpers.facade.cs - - - SetOperation.cs - - - StreamPacker.cs - - - StringEscape.cs - - - SubtreeUnpacker.cs - - - SubtreeUnpacker.Unpacking.cs - - - TupleItems.cs - - - UnassignedMessageTypeException.cs - - - Unpacker.cs - - - Unpacker.Unpacking.cs - - - UnpackException.cs - - - Unpacking.cs - - - Unpacking.Numerics.cs - - - Unpacking.Others.cs - - - Unpacking.Streaming.cs - - - Unpacking.String.cs - - - UnpackingMode.cs - - - UnpackingResult.cs - - - UnpackingStream.cs - - - UnpackingStreamReader.cs - - - UnsafeNativeMethods.cs - - - - - - remarks.xml - - - \ No newline at end of file diff --git a/src/MsgPack.Xamarin.Android/Properties/AssemblyInfo.cs b/src/MsgPack.Xamarin.Android/Properties/AssemblyInfo.cs deleted file mode 100644 index d56404773..000000000 --- a/src/MsgPack.Xamarin.Android/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,38 +0,0 @@ -#region -- License Terms -- -// -// MessagePack for CLI -// -// Copyright (C) 2010-2016 FUJIWARA, Yusuke -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -#endregion -- License Terms -- - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Security; - -[assembly: AssemblyTitle( "MessagePack for CLI(.NET/Mono)" )] -[assembly: AssemblyDescription( "MessagePack for CLI(.NET/Mono) packing/unpacking library for Xamarin.Android." )] - -[assembly: AssemblyFileVersion( "0.7.2259.1047" )] - -[assembly: SecurityRules( SecurityRuleSet.Level2, SkipVerificationInFullTrust = true )] -[assembly: AllowPartiallyTrustedCallers] - -#if DEBUG || PERFORMANCE_TEST -[assembly: InternalsVisibleTo( "MsgPack.UnitTest.Xamarin.Android, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -[assembly: InternalsVisibleTo( "MsgPack.UnitTest.BclExtensions.Xamarin.Android, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -#endif - - diff --git a/src/MsgPack.Xamarin.Android/Resources/Resource.designer.cs b/src/MsgPack.Xamarin.Android/Resources/Resource.designer.cs deleted file mode 100644 index e69de29bb..000000000 diff --git a/src/MsgPack.Xamarin.iOS/MsgPack.Xamarin.iOS.csproj b/src/MsgPack.Xamarin.iOS/MsgPack.Xamarin.iOS.csproj deleted file mode 100644 index e3af9cb10..000000000 --- a/src/MsgPack.Xamarin.iOS/MsgPack.Xamarin.iOS.csproj +++ /dev/null @@ -1,768 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {C9710C8A-2FA9-47FE-812C-992C283471CC} - {FEACFBD2-3405-455C-9665-78FE426C6842};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - Library - MsgPack - Resources - MsgPack - - - true - full - false - bin\Debug - DEBUG;__UNIFIED__;__MOBILE__;__IOS__;AOT;NETSTANDARD1_3;XAMARIN;FEATURE_TAP;FEATURE_CONCURRENT - prompt - 4 - false - bin\Debug\MsgPack.xml - - - full - true - ..\..\bin\Xamarin.iOS10\ - prompt - 4 - false - __UNIFIED__;__MOBILE__;__IOS__;AOT;NETSTANDARD1_3;XAMARIN;FEATURE_TAP;FEATURE_CONCURRENT - ..\..\bin\Xamarin.iOS10\MsgPack.XML - - - - - - - - - - - - - Properties\CommonAssemblyInfo.cs - - - AsyncReadResult.cs - - - AsyncReadResult`1.cs - - - BigEndianBinary.cs - - - Binary.cs - - - BufferManager.cs - - - CollectionDebuggerProxy`1.cs - - - CollectionOperation.cs - - - DictionaryDebuggerProxy`2.cs - - - Float32Bits.cs - - - Float64Bits.cs - - - GlobalSuppressions.cs - - - IAsyncPackable.cs - - - IAsyncUnpackable.cs - - - InvalidMessagePackStreamException.cs - - - IPackable.cs - - - ItemsUnpacker.cs - - - ItemsUnpacker.Read.cs - - - ItemsUnpacker.Skipping.cs - - - ItemsUnpacker.Unpacking.cs - - - IUnpackable.cs - - - KnownExtTypeCode.cs - - - KnownExtTypeName.cs - - - MessageNotSupportedException.cs - - - MessagePackCode.cs - - - MessagePackConvert.cs - - - MessagePackExtendedTypeObject.cs - - - MessagePackObject.cs - - - MessagePackObject.Utilities.cs - - - MessagePackObjectDictionary.cs - - - MessagePackObjectDictionary.Enumerator.cs - - - MessagePackObjectDictionary.KeySet.cs - - - MessagePackObjectDictionary.KeySet.Enumerator.cs - - - MessagePackObjectDictionary.ValueCollection.cs - - - MessagePackObjectDictionary.ValueCollection.Enumerator.cs - - - MessagePackObjectEqualityComparer.cs - - - MessagePackString.cs - - - MessageTypeException.cs - - - Packer.cs - - - Packer.Nullable.cs - - - Packer.Packing.cs - - - PackerCompatibilityOptions.cs - - - PackerUnpackerExtensions.cs - - - PackerUnpackerStreamOptions.cs - - - PackingOptions.cs - - - PreserveAttribute.cs - - - ReflectionAbstractions.cs - - - Serialization\CollectionDetailedKind.cs - - - Serialization\CollectionKind.cs - - - Serialization\CollectionSerializers\CollectionMessagePackSerializerBase`2.cs - - - Serialization\CollectionSerializers\CollectionMessagePackSerializer`2.cs - - - Serialization\CollectionSerializers\CollectionSerializerHelpers.cs - - - Serialization\CollectionSerializers\DictionaryMessagePackSerializerBase`3.cs - - - Serialization\CollectionSerializers\DictionaryMessagePackSerializer`3.cs - - - Serialization\CollectionSerializers\EnumerableMessagePackSerializerBase`2.cs - - - Serialization\CollectionSerializers\EnumerableMessagePackSerializer`2.cs - - - Serialization\CollectionSerializers\ICollectionInstanceFactory.cs - - - Serialization\CollectionSerializers\NonGenericCollectionMessagePackSerializer`1.cs - - - Serialization\CollectionSerializers\NonGenericDictionaryMessagePackSerializer`1.cs - - - Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializerBase`1.cs - - - Serialization\CollectionSerializers\NonGenericEnumerableMessagePackSerializer`1.cs - - - Serialization\CollectionSerializers\NonGenericListMessagePackSerializer`1.cs - - - Serialization\CollectionSerializers\ReadOnlyCollectionMessagePackSerializer`2.cs - - - Serialization\CollectionSerializers\ReadOnlyDictionaryMessagePackSerializer`3.cs - - - Serialization\CollectionTraitOptions.cs - - - Serialization\CollectionTraits.cs - - - Serialization\DataMemberContract.cs - - - Serialization\DateTimeConversionMethod.cs - - - Serialization\DateTimeMemberConversionMethod.cs - - - Serialization\DateTimeMessagePackSerializerHelpers.cs - - - Serialization\DefaultConcreteTypeRepository.cs - - - Serialization\DefaultSerializers\AbstractCollectionMessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\AbstractCollectionSerializerHelper.cs - - - Serialization\DefaultSerializers\AbstractDictionaryMessagePackSerializer`3.cs - - - Serialization\DefaultSerializers\AbstractEnumerableMessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\AbstractNonGenericCollectionMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\AbstractNonGenericDictionaryMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\AbstractNonGenericEnumerableMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\AbstractNonGenericListMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\AbstractReadOnlyCollectionMessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\AbstractReadOnlyDictionaryMessagePackSerializer`3.cs - - - Serialization\DefaultSerializers\ArraySegmentMessageSerializer.cs - - - Serialization\DefaultSerializers\ArraySerializer.cs - - - Serialization\DefaultSerializers\ArraySerializer.Primitives.cs - - - Serialization\DefaultSerializers\ArraySerializer`1.cs - - - Serialization\DefaultSerializers\DateTimeMessagePackSerializerProvider.cs - - - Serialization\DefaultSerializers\DateTimeOffsetMessagePackSerializer.cs - - - Serialization\DefaultSerializers\DateTimeOffsetMessagePackSerializerProvider.cs - - - Serialization\DefaultSerializers\DefaultSerializers.cs - - - Serialization\DefaultSerializers\FSharpCollectionSerializer`2.cs - - - Serialization\DefaultSerializers\FSharpMapSerializer`3.cs - - - Serialization\DefaultSerializers\GenericSerializer.cs - - - Serialization\DefaultSerializers\ImmutableCollectionSerializer`2.cs - - - Serialization\DefaultSerializers\ImmutableDictionarySerializer`3.cs - - - Serialization\DefaultSerializers\ImmutableStackSerializer`2.cs - - - Serialization\DefaultSerializers\InternalDateTimeExtensions.cs - - - Serialization\DefaultSerializers\MessagePackObjectExtensions.cs - - - Serialization\DefaultSerializers\MsgPack_MessagePackExtendedTypeObjectMessagePackSerializer.cs - - - Serialization\DefaultSerializers\MsgPack_MessagePackObjectDictionaryMessagePackSerializer.cs - - - Serialization\DefaultSerializers\MsgPack_MessagePackObjectMessagePackSerializer.cs - - - Serialization\DefaultSerializers\MultidimensionalArraySerializer`1.cs - - - Serialization\DefaultSerializers\NativeDateTimeMessagePackSerializer.cs - - - Serialization\DefaultSerializers\NullableMessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_ArraySegment_1MessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_ByteArrayMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_CharArrayMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_DictionaryEntryMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_Dictionary_2MessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_KeyValuePair_2MessagePackSerializer`2.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_ListOfMessagePackObjectMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_List_1MessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_Queue_1MessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_Collections_Generic_Stack_1MessagePackSerializer`1.cs - - - Serialization\DefaultSerializers\System_Collections_QueueMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_Specialized_NameValueCollectionMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Collections_StackMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_DBNullMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Globalization_CultureInfoMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Numerics_ComplexMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_ObjectMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_StringMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_Text_StringBuilderMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_UriMessagePackSerializer.cs - - - Serialization\DefaultSerializers\System_VersionMessagePackSerializer.cs - - - Serialization\DefaultSerializers\UnixEpocDateTimeMessagePackSerializer.cs - - - Serialization\DictionaryKeyTransformers.cs - - - Serialization\DictionarySerlaizationOptions.cs - - - Serialization\EmitterFlavor.cs - - - Serialization\EnumMemberSerializationMethod.cs - - - Serialization\EnumMessagePackSerializerHelpers.cs - - - Serialization\EnumMessagePackSerializerProvider.cs - - - Serialization\EnumMessagePackSerializer`1.cs - - - Serialization\EnumNameTransformers.cs - - - Serialization\EnumSerializationMethod.cs - - - Serialization\EnumSerializationOptions.cs - - - Serialization\ExtTypeCodeMapping.cs - - - Serialization\ICustomizableEnumSerializer.cs - - - Serialization\IdentifierUtility.cs - - - Serialization\IMessagePackSerializer.cs - - - Serialization\IMessagePackSingleObjectSerializer.cs - - - Serialization\INilImplicationHandlerOnUnpackedParameter.cs - - - Serialization\INilImplicationHandlerParameter.cs - - - Serialization\KeyNameTransformers.cs - - - Serialization\LazyDelegatingMessagePackSerializer`1.cs - - - Serialization\MessagePackDateTimeMemberAttribute.cs - - - Serialization\MessagePackDeserializationConstructorAttribute.cs - - - Serialization\MessagePackEnumAttribute.cs - - - Serialization\MessagePackEnumMemberAttribute.cs - - - Serialization\MessagePackIgnoreAttribute.cs - - - Serialization\MessagePackKnownTypeAttributes.cs - - - Serialization\MessagePackMemberAttribute.cs - - - Serialization\MessagePackRuntimeTypeAttributes.cs - - - Serialization\MessagePackSerializer.cs - - - Serialization\MessagePackSerializer.Factories.cs - - - Serialization\MessagePackSerializerExtensions.cs - - - Serialization\MessagePackSerializerProvider.cs - - - Serialization\MessagePackSerializer`1.cs - - - Serialization\NilImplication.cs - - - Serialization\NilImplicationHandler`4.cs - - - Serialization\NullTextWriter.cs - - - Serialization\PackHelperParameters.cs - - - Serialization\PackHelpers.cs - - - Serialization\PolymorphicTypeVerificationContext.cs - - - Serialization\Polymorphic\IPolymorphicDeserializer.cs - - - Serialization\Polymorphic\IPolymorphicHelperAttributes.cs - - - Serialization\Polymorphic\KnownTypePolymorphicMessagePackSerializer`1.cs - - - Serialization\Polymorphic\PolymorphicSerializerProvider`1.cs - - - Serialization\Polymorphic\RuntimeTypeVerifier.cs - - - Serialization\Polymorphic\TypeEmbedingPolymorphicMessagePackSerializer`1.cs - - - Serialization\Polymorphic\TypeInfoEncoder.cs - - - Serialization\Polymorphic\TypeInfoEncoding.cs - - - Serialization\PolymorphismSchema.Constructors.cs - - - Serialization\PolymorphismSchema.cs - - - Serialization\PolymorphismSchema.Internals.cs - - - Serialization\PolymorphismSchemaChildrenType.cs - - - Serialization\PolymorphismTarget.cs - - - Serialization\PolymorphismType.cs - - - Serialization\ReflectionExtensions.CollectionTraits.cs - - - Serialization\ReflectionExtensions.cs - - - Serialization\ReflectionExtensions.InvokePreservingExtension.cs - - - Serialization\ReflectionHelpers.cs - - - Serialization\ReflectionSerializers\ReflectionCollectionMessagePackSerializer`2.cs - - - Serialization\ReflectionSerializers\ReflectionDictionaryMessagePackSerializer`3.cs - - - Serialization\ReflectionSerializers\ReflectionEnumerableMessagePackSerializer`2.cs - - - Serialization\ReflectionSerializers\ReflectionEnumMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionNilImplicationHandler.cs - - - Serialization\ReflectionSerializers\ReflectionNonGeenricCollectionMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionNonGeenricEnumerableMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionNonGenericDictionaryMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionNonGenericListMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionObjectMessagePackSerializer`1.cs - - - Serialization\ReflectionSerializers\ReflectionSerializerHelper.cs - - - Serialization\ReflectionSerializers\ReflectionSerializerNilImplicationHandlerOnUnpackedParameter.cs - - - Serialization\ReflectionSerializers\ReflectionSerializerNilImplicationHandlerParameter.cs - - - Serialization\ReflectionSerializers\ReflectionTupleMessagePackSerializer`1.cs - - - Serialization\Reflection\GenericTypeExtensions.cs - - - Serialization\Reflection\ReflectionExtensions.cs - - - Serialization\ResolveSerializerEventArgs.cs - - - Serialization\SerializationCompatibilityOptions.cs - - - Serialization\SerializationContext.cs - - - Serialization\SerializationContext.ExtTypeCodes.cs - - - Serialization\SerializationExceptions.cs - - - Serialization\SerializationMethod.cs - - - Serialization\SerializationMethodGeneratorOption.cs - - - Serialization\SerializationTarget.cs - - - Serialization\SerializerCapabilities.cs - - - Serialization\SerializerDebugging.cs - - - Serialization\SerializerOptions.cs - - - Serialization\SerializerRegistrationOptions.cs - - - Serialization\SerializerRepository.cs - - - Serialization\SerializerRepository.defaults.cs - - - Serialization\SerializerTypeKeyRepository.cs - - - Serialization\SerializingMember.cs - - - Serialization\TypeKeyRepository.cs - - - Serialization\UnpackHelperParameters.cs - - - Serialization\UnpackHelpers.cs - - - Serialization\UnpackHelpers.direct.cs - - - Serialization\UnpackHelpers.facade.cs - - - SetOperation.cs - - - StreamPacker.cs - - - StringEscape.cs - - - SubtreeUnpacker.cs - - - SubtreeUnpacker.Unpacking.cs - - - TupleItems.cs - - - UnassignedMessageTypeException.cs - - - Unpacker.cs - - - Unpacker.Unpacking.cs - - - UnpackException.cs - - - Unpacking.cs - - - Unpacking.Numerics.cs - - - Unpacking.Others.cs - - - Unpacking.Streaming.cs - - - Unpacking.String.cs - - - UnpackingMode.cs - - - UnpackingResult.cs - - - UnpackingStream.cs - - - UnpackingStreamReader.cs - - - UnsafeNativeMethods.cs - - - - - - remarks.xml - - - - \ No newline at end of file diff --git a/src/MsgPack.Xamarin.iOS/Properties/AssemblyInfo.cs b/src/MsgPack.Xamarin.iOS/Properties/AssemblyInfo.cs deleted file mode 100644 index fc61da79e..000000000 --- a/src/MsgPack.Xamarin.iOS/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,40 +0,0 @@ -#region -- License Terms -- -// -// MessagePack for CLI -// -// Copyright (C) 2016 FUJIWARA, Yusuke -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -#endregion -- License Terms -- - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Security; - -using Foundation; - -[assembly: AssemblyTitle( "MessagePack for CLI(.NET/Mono)" )] -[assembly: AssemblyDescription( "MessagePack for CLI(.NET/Mono) packing/unpacking library for Xamarin.iOS unified API." )] - -[assembly: AssemblyFileVersion( "0.7.2259.1047" )] - -[assembly: SecurityRules( SecurityRuleSet.Level2, SkipVerificationInFullTrust = true )] -[assembly: AllowPartiallyTrustedCallers] - -#if DEBUG || PERFORMANCE_TEST -[assembly: InternalsVisibleTo( "MsgPackUnitTestXamariniOS" )] -#endif - -[assembly: LinkerSafe] - diff --git a/src/MsgPack/MsgPack.csproj b/src/MsgPack/MsgPack.csproj index 0921e3de6..785f3a605 100644 --- a/src/MsgPack/MsgPack.csproj +++ b/src/MsgPack/MsgPack.csproj @@ -41,6 +41,7 @@ $(OutputPath)\MsgPack.XML + false $(OutputPath)\$(TargetFramework)\MsgPack.XML diff --git a/src/MsgPack/Properties/AssemblyInfo.cs b/src/MsgPack/Properties/AssemblyInfo.cs index 943dd35b9..55439dcb3 100644 --- a/src/MsgPack/Properties/AssemblyInfo.cs +++ b/src/MsgPack/Properties/AssemblyInfo.cs @@ -57,6 +57,14 @@ [assembly: InternalsVisibleTo( "MsgPack.UnitTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] [assembly: InternalsVisibleTo( "MsgPack.UnitTest.CodeDom, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] [assembly: InternalsVisibleTo( "MsgPack.UnitTest.BclExtensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -#endif +#if XAMARIN +#if __ANDROID__ +[assembly:InternalsVisibleTo( "MsgPack.UnitTest.Xamarin.Android" )] +#endif // __ANDROID__ +#if __IOS__ +[assembly:InternalsVisibleTo( "MsgPackUnitTestXamariniOS" )] +#endif // __IOS__ +#endif // XAMARIN +#endif // DEBUG || PERFORMANCE_TEST diff --git a/test/MsgPack.UnitTest.Xamarin.Android/MsgPack.UnitTest.Xamarin.Android.csproj b/test/MsgPack.UnitTest.Xamarin.Android/MsgPack.UnitTest.Xamarin.Android.csproj index 6cd92ffa1..a13cf6763 100644 --- a/test/MsgPack.UnitTest.Xamarin.Android/MsgPack.UnitTest.Xamarin.Android.csproj +++ b/test/MsgPack.UnitTest.Xamarin.Android/MsgPack.UnitTest.Xamarin.Android.csproj @@ -54,12 +54,6 @@ - - - {A6210C9C-1614-46C5-97B2-6A37032AF143} - MsgPack.Xamarin.Android - - MsgPack.snk @@ -1851,4 +1845,10 @@ gen\_ReadMe.txt + + + {5bcec32e-990e-4de5-945f-bd27326a7418} + MsgPack + + \ No newline at end of file diff --git a/test/MsgPack.UnitTest.Xamarin.iOS/MsgPack.UnitTest.Xamarin.iOS.csproj b/test/MsgPack.UnitTest.Xamarin.iOS/MsgPack.UnitTest.Xamarin.iOS.csproj index 2dc3a06b7..3f87ca754 100644 --- a/test/MsgPack.UnitTest.Xamarin.iOS/MsgPack.UnitTest.Xamarin.iOS.csproj +++ b/test/MsgPack.UnitTest.Xamarin.iOS/MsgPack.UnitTest.Xamarin.iOS.csproj @@ -1905,11 +1905,9 @@ - - {c9710c8a-2fa9-47fe-812c-992c283471cc} - MsgPack.Xamarin.iOS - false - false + + {5bcec32e-990e-4de5-945f-bd27326a7418} + MsgPack From f72f06d69cc38fd95efe3495191af9500f213c3b Mon Sep 17 00:00:00 2001 From: yfakariya Date: Sun, 26 Mar 2017 23:48:22 +0900 Subject: [PATCH 04/13] Migrate Windows specific projects ...but it is not vs2017 because of silverlights. --- MsgPack.Windows.sln | 84 +++++++------- .../Properties/AssemblyInfo.cs | 46 -------- src/MsgPack.CoreClr/project.json | 107 ------------------ src/MsgPack.Uwp/MsgPack.Uwp.csproj | 12 +- src/netstandard/build/build.cmd | 4 +- src/netstandard/build/build.sh | 4 +- 6 files changed, 53 insertions(+), 204 deletions(-) delete mode 100644 src/MsgPack.CoreClr/Properties/AssemblyInfo.cs delete mode 100644 src/MsgPack.CoreClr/project.json diff --git a/MsgPack.Windows.sln b/MsgPack.Windows.sln index 893ad7b88..4d42f5010 100644 --- a/MsgPack.Windows.sln +++ b/MsgPack.Windows.sln @@ -50,8 +50,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".NET Standard", ".NET Stand EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.Uwp", "src\MsgPack.Uwp\MsgPack.Uwp.csproj", "{9D65A105-FB03-40DB-9185-8C695B8EE8D6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetStandardProjectBuilder", "src\netstandard\build\NetStandardProjectBuilder.csproj", "{A1B322FC-AA39-4894-AFA8-AB427A3FBA09}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.Uwp", "test\MsgPack.UnitTest.Uwp\MsgPack.UnitTest.Uwp.csproj", "{0F930636-458B-401F-9EAF-F4F05E93BCC9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.Uwp.Aot", "test\MsgPack.UnitTest.Uwp.Aot\MsgPack.UnitTest.Uwp.Aot.csproj", "{E4CA9866-6234-49D4-8CDF-1F3A21EFD138}" @@ -64,6 +62,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "nunitlite-sl-5.0", "test\NU EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.Silverlight.5.FullTrust", "test\MsgPack.UnitTest.Silverlight.5.FullTrust\MsgPack.UnitTest.Silverlight.5.FullTrust.csproj", "{26A3F930-FDAF-4886-9111-D326A6F68E82}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetStandardProjectBuilder", "src\netstandard\build\NetStandardProjectBuilder.csproj", "{A1B322FC-AA39-4894-AFA8-AB427A3FBA09}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CodeAnalysis|Any CPU = CodeAnalysis|Any CPU @@ -390,44 +390,6 @@ Global {9D65A105-FB03-40DB-9185-8C695B8EE8D6}.Release|x64.Build.0 = Release|x64 {9D65A105-FB03-40DB-9185-8C695B8EE8D6}.Release|x86.ActiveCfg = Release|x86 {9D65A105-FB03-40DB-9185-8C695B8EE8D6}.Release|x86.Build.0 = Release|x86 - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|Any CPU.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|ARM.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|Mixed Platforms.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|x64.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|x86.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|ARM.ActiveCfg = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|ARM.Build.0 = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|x64.ActiveCfg = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|x64.Build.0 = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|x86.ActiveCfg = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|x86.Build.0 = Debug|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|ARM.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|Mixed Platforms.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|Mixed Platforms.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|x64.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|x64.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|x86.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|x86.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|Any CPU.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|ARM.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|ARM.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|x64.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|x64.Build.0 = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|x86.ActiveCfg = Release|Any CPU - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|x86.Build.0 = Release|Any CPU {0F930636-458B-401F-9EAF-F4F05E93BCC9}.CodeAnalysis|Any CPU.ActiveCfg = Release|x64 {0F930636-458B-401F-9EAF-F4F05E93BCC9}.CodeAnalysis|Any CPU.Build.0 = Release|x64 {0F930636-458B-401F-9EAF-F4F05E93BCC9}.CodeAnalysis|Any CPU.Deploy.0 = Release|x64 @@ -688,6 +650,46 @@ Global {26A3F930-FDAF-4886-9111-D326A6F68E82}.Release|x64.Build.0 = Release|Any CPU {26A3F930-FDAF-4886-9111-D326A6F68E82}.Release|x86.ActiveCfg = Release|Any CPU {26A3F930-FDAF-4886-9111-D326A6F68E82}.Release|x86.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|Any CPU.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|ARM.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|Mixed Platforms.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|Mixed Platforms.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|x64.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.CodeAnalysis|x86.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|ARM.ActiveCfg = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|ARM.Build.0 = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|x64.ActiveCfg = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|x64.Build.0 = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|x86.ActiveCfg = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Debug|x86.Build.0 = Debug|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|ARM.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|Mixed Platforms.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|x64.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|x64.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|x86.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.PerformanceTest|x86.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|Any CPU.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|ARM.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|ARM.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|x64.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|x64.Build.0 = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|x86.ActiveCfg = Release|Any CPU + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -709,12 +711,12 @@ Global {09C98E72-44F7-4469-B82A-DFA3053652E6} = {87A17015-9338-431E-B338-57BDA03984C1} {BFCE0B36-F21B-4EB1-919E-C486E70C8BEA} = {1BD5D488-707E-4030-8AE8-80D93D04963F} {9D65A105-FB03-40DB-9185-8C695B8EE8D6} = {086116A9-EC42-45C1-B359-7AFB9A488556} - {A1B322FC-AA39-4894-AFA8-AB427A3FBA09} = {BFCE0B36-F21B-4EB1-919E-C486E70C8BEA} {0F930636-458B-401F-9EAF-F4F05E93BCC9} = {7D06945C-638C-4973-B0B6-D0D667FA318F} {E4CA9866-6234-49D4-8CDF-1F3A21EFD138} = {09C98E72-44F7-4469-B82A-DFA3053652E6} {17D0F223-E156-42CF-ACA8-815733FE094F} = {9600C37E-439F-43D7-9D12-3AB0BEF7D906} {3DEB15F9-E7DA-403F-B6D3-A8499310397F} = {9600C37E-439F-43D7-9D12-3AB0BEF7D906} {0A5F920A-1BF5-4DAC-B799-0C618B203797} = {9600C37E-439F-43D7-9D12-3AB0BEF7D906} {26A3F930-FDAF-4886-9111-D326A6F68E82} = {9600C37E-439F-43D7-9D12-3AB0BEF7D906} + {A1B322FC-AA39-4894-AFA8-AB427A3FBA09} = {BFCE0B36-F21B-4EB1-919E-C486E70C8BEA} EndGlobalSection EndGlobal diff --git a/src/MsgPack.CoreClr/Properties/AssemblyInfo.cs b/src/MsgPack.CoreClr/Properties/AssemblyInfo.cs deleted file mode 100644 index 9277f05d3..000000000 --- a/src/MsgPack.CoreClr/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,46 +0,0 @@ -#region -- License Terms -- -// -// MessagePack for CLI -// -// Copyright (C) 2016 FUJIWARA, Yusuke -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// -#endregion -- License Terms -- - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Security; - -#if NETSTANDARD1_1 -[assembly: AssemblyTitle( "MessagePack for .NET Platform Standard 1.1" )] -#elif NETSTANDARD1_3 -[assembly: AssemblyTitle( "MessagePack for .NET Platform Standard 1.3" )] -#else -[assembly: AssemblyTitle( "MessagePack for .NET Platform Standard" )] -#endif -[assembly: AssemblyDescription( "MessagePack for CLI(.NET/Mono) packing/unpacking library for .NET Platform Standard 1.1 including .NET 4.5.x, Windows App, and Mono without AOT" )] - -[assembly: AssemblyFileVersion( "0.7.2259.1047" )] - -#if DEBUG || PERFORMANCE_TEST -[assembly: InternalsVisibleTo( "MsgPack.UnitTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -[assembly: InternalsVisibleTo( "MsgPack.UnitTest.BclExtensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -[assembly: InternalsVisibleTo( "MsgPack.UnitTest.Net45, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -[assembly: InternalsVisibleTo( "MsgPack.UnitTest.BclExtensions.Net45, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -[assembly: InternalsVisibleTo( "MsgPack.UnitTest.WinRT, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -[assembly: InternalsVisibleTo( "MsgPack.UnitTest.BclExtensions.WinRT, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -[assembly: InternalsVisibleTo( "MsgPack.UnitTest.WinRT.WindowsPhone.8.1, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] -#endif - - diff --git a/src/MsgPack.CoreClr/project.json b/src/MsgPack.CoreClr/project.json deleted file mode 100644 index d52ac8148..000000000 --- a/src/MsgPack.CoreClr/project.json +++ /dev/null @@ -1,107 +0,0 @@ -{ - "buildOptions": { - "outputName": "MsgPack", - "keyFile": "../MsgPack.snk", - "configurations": { - "Debug": { - "buildOptions": { - "define": [ "DEBUG" ], - "optimize": false - } - }, - "Release": { - "buildOptions": { - "optimize": true - } - } - }, - "define": [ "TRACE", "FEATURE_TAP", "FEATURE_CONCURRENT" ], - "xmlDoc": true, - "compile": { - "include": [ - "../MsgPack/**/*.cs", - "../CommonAssemblyInfo.cs", - "../netstandard/BufferedStream.cs", - "../netstandard/MPContract.cs", - "../netstandard/NetStandardCompatibility.cs", - "./**/*.cs" - ], - "exclude": [ - "../MsgPack/Properties/AssemblyInfo.cs", - "../MsgPack/Serialization/AbstractSerializers/**/*.*", - "../MsgPack/Serialization/CodeDomSerializers/**/*.*", - "../MsgPack/Serialization/DefaultSerializers/System_Security_Cryptography_HashAlgorithmNameMessagePackSerializer.cs", - "../MsgPack/Serialization/EmittingSerializers/**/*.*", - "../MsgPack/Serialization/Metadata/_CultureInfo.cs", - "../MsgPack/Serialization/Metadata/_DateTimeMessagePackSerializerHelpers.cs", - "../MsgPack/Serialization/Metadata/_Decimal.cs", - "../MsgPack/Serialization/Metadata/_DictionaryEntry.cs", - "../MsgPack/Serialization/Metadata/_DynamicUnpackingContext.cs", - "../MsgPack/Serialization/Metadata/_EnumMessagePackSerializerHelpers.cs", - "../MsgPack/Serialization/Metadata/_FieldInfo.cs", - "../MsgPack/Serialization/Metadata/_IDictionaryEnumerator.cs", - "../MsgPack/Serialization/Metadata/_IDisposable.cs", - "../MsgPack/Serialization/Metadata/_IEnumreator.cs", - "../MsgPack/Serialization/Metadata/_MessagePackObject.cs", - "../MsgPack/Serialization/Metadata/_MethodBase.cs", - "../MsgPack/Serialization/Metadata/_Object.cs", - "../MsgPack/Serialization/Metadata/_Packer.cs", - "../MsgPack/Serialization/Metadata/_String.cs", - "../MsgPack/Serialization/Metadata/_Unpacker.cs", - "../MsgPack/Serialization/Metadata/_UnpackHelpers.cs", - "../MsgPack/Serialization/Metadata/_UnpackHelpers.direct.cs", - "../MsgPack/Serialization/Reflection/TracingILGenerator*.cs", - "../MsgPack/Serialization/CodeGenerationSink.cs", - "../MsgPack/Serialization/DependentAssemblyManager.cs", - "../MsgPack/Serialization/IndividualFileCodeGenerationSink.cs", - "../MsgPack/Serialization/ISerializerGeneratorConfiguration.cs", - "../MsgPack/Serialization/ReflectionExtensions.ConstructorDelegate.cs", - "../MsgPack/Serialization/SerializerAssemblyGenerationConfiguration.cs", - "../MsgPack/Serialization/SerializerCodeGenerationConfiguration.cs", - "../MsgPack/Serialization/SerializerCodeInformation.cs", - "../MsgPack/Serialization/SerializerGenerator.cs", - "../MsgPack/Serialization/SerializerCodeGenerationContext.cs", - "../MsgPack/Serialization/SerializerCodeGenerationResult.cs", - "../MsgPack/Serialization/SingleTextWriterCodeGenerationSink.cs", - "../MsgPack/Serialization/TeeTextWriter.cs", - ] - } - }, - "dependencies": { - "System.Collections": "4.0.11", - "System.Collections.Concurrent": "4.0.12", - "System.Diagnostics.Contracts": "4.0.1", - "System.Diagnostics.Debug": "4.0.11", - "System.Diagnostics.Tools": "4.0.1", - "System.Globalization": "4.0.11", - "System.IO": "4.1.0", - "System.Linq": "4.1.0", - "System.Linq.Expressions": "4.1.0", - "System.ObjectModel": "4.0.12", - "System.Reflection": "4.1.0", - "System.Reflection.Extensions": "4.0.1", - "System.Reflection.Primitives": "4.0.1", - "System.Resources.ResourceManager": "4.0.1", - "System.Runtime": "4.1.0", - "System.Runtime.Extensions": "4.1.0", - "System.Runtime.InteropServices": "4.1.0", - "System.Runtime.Numerics": "4.0.1", - "System.Runtime.Serialization.Primitives": "4.1.1", - "System.Text.Encoding": "4.0.11", - "System.Text.Encoding.Extensions": "4.0.11", - "System.Text.RegularExpressions": "4.1.0", - "System.Threading": "4.0.11" - }, - "frameworks": { - "netstandard1.1": { - }, - "netstandard1.3": { - "dependencies": { - "System.Collections.NonGeneric": "4.0.1", - "System.Collections.Specialized": "4.0.1", - "System.Data.Common": "4.1.0", - "System.Numerics.Vectors": "4.1.1" - } - } - } -} diff --git a/src/MsgPack.Uwp/MsgPack.Uwp.csproj b/src/MsgPack.Uwp/MsgPack.Uwp.csproj index 2ac5e96b1..06929c1c3 100644 --- a/src/MsgPack.Uwp/MsgPack.Uwp.csproj +++ b/src/MsgPack.Uwp/MsgPack.Uwp.csproj @@ -129,6 +129,9 @@ Binary.cs + + BufferedStream.cs + BufferManager.cs @@ -228,6 +231,9 @@ MessageTypeException.cs + + NetStandardCompatibility.cs + Packer.cs @@ -837,12 +843,6 @@ UnpackingStreamReader.cs - - BufferedStream.cs - - - NetStandardCompatibility.cs - diff --git a/src/netstandard/build/build.cmd b/src/netstandard/build/build.cmd index 017bc6f9b..877554966 100644 --- a/src/netstandard/build/build.cmd +++ b/src/netstandard/build/build.cmd @@ -1,13 +1,13 @@ echo Retore netstandard 1.1/1.3 project... echo %0 %1 %2 -dotnet restore %1src\MsgPack.CoreClr\project.json +dotnet restore %1src\MsgPack\MsgPack.csproj if not %ERRORLEVEL%==0 ( echo "Failed to restore netstandard1.1/1.3" exit 1 ) echo Build netstandard 1.1/1.3 project... -dotnet build %1src\MsgPack.CoreClr\project.json -c %2 +dotnet build %1src\MsgPack\MsgPack.csproj -c %2 if not %ERRORLEVEL%==0 ( echo "Failed to build netstandard1.1/1.3" exit 1 diff --git a/src/netstandard/build/build.sh b/src/netstandard/build/build.sh index a6f6d5ad2..338eeb25c 100644 --- a/src/netstandard/build/build.sh +++ b/src/netstandard/build/build.sh @@ -2,7 +2,7 @@ echo Retore netstandard 1.1 project... echo Solution=$1 echo Configuration=$2 -dotnet restore $1src/MsgPack.CoreClr/project.json +dotnet restore $1src/MsgPack/MsgPack.csproj if test $? -ne 0; then echo "Failed to restore netstandard1.1/1.3" return 1 1>/dev/null 2>&1 @@ -10,7 +10,7 @@ if test $? -ne 0; then fi echo Build netstandard 1.1/1.3 project... -dotnet build $1src/MsgPack.CoreClr/project.json -c $2 +dotnet build $1src/MsgPack/MsgPack.csproj -c $2 if test $? -ne 0; then echo "Failed to build netstandard1.1/1.3" return 1 1>/dev/null 2>&1 From e8aa18466025114783e33dc8165f7c9bdaf8422b Mon Sep 17 00:00:00 2001 From: yfakariya Date: Wed, 5 Apr 2017 21:22:38 +0900 Subject: [PATCH 05/13] Migrate .NET 3.5 projects. --- MsgPack.compats.sln | 132 +- MsgPack.sln | 168 +- src/MsgPack/MsgPack.csproj | 7 +- src/MsgPack/Properties/AssemblyInfo.cs | 10 +- src/mpu/mpu.csproj | 42 +- src/mpu/packages.config | 4 - .../MsgPack.UnitTest.CodeDom.Net35.csproj | 6 +- .../MsgPack.UnitTest.Net35.csproj | 6 +- tools/mpu/ReadMe.txt | 5 + tools/mpu/bin/MsgPack.dll | Bin 556544 -> 0 bytes tools/mpu/bin/MsgPack.xml | 14810 ---------------- tools/mpu/bin/mpu.exe | Bin 51200 -> 0 bytes tools/mpu/bin/mpu.exe.config | 3 - 13 files changed, 201 insertions(+), 14992 deletions(-) delete mode 100644 src/mpu/packages.config create mode 100644 tools/mpu/ReadMe.txt delete mode 100644 tools/mpu/bin/MsgPack.dll delete mode 100644 tools/mpu/bin/MsgPack.xml delete mode 100644 tools/mpu/bin/mpu.exe delete mode 100644 tools/mpu/bin/mpu.exe.config diff --git a/MsgPack.compats.sln b/MsgPack.compats.sln index df772312e..73b77ed8b 100644 --- a/MsgPack.compats.sln +++ b/MsgPack.compats.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26228.9 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{60EC42E9-D79B-4ADF-8F80-4DCD580061FD}" ProjectSection(SolutionItems) = preProject @@ -18,18 +18,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".nuget", ".nuget", "{DB9CF5 .nuget\NuGet.targets = .nuget\NuGet.targets EndProjectSection EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".NET35", ".NET35", "{B7BF9C9A-7349-499F-BD44-553190C0CFDC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.Net35", "src\MsgPack.Net35\MsgPack.Net35.csproj", "{C5490CDC-3B79-42DC-ACFB-75A62E55862C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.Net35", "test\MsgPack.UnitTest.Net35\MsgPack.UnitTest.Net35.csproj", "{B8BDEBCD-343C-42A9-8C17-C1318B42F011}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.CodeDom.Net35", "test\MsgPack.UnitTest.CodeDom.Net35\MsgPack.UnitTest.CodeDom.Net35.csproj", "{2A8463C8-8E4B-44F6-AA58-D1232DF88438}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Unity", "Unity", "{936467D2-1DD3-4243-BBB4-FCCB2CA1E3AC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mpu", "src\mpu\mpu.csproj", "{CB7C32CD-A8D8-44A4-A595-DF4303566C81}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NUnitLite", "NUnitLite", "{767C2A1C-53F8-4048-BE02-CB4393B1CEB6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NUnitLiteRunner", "test\NUnitLiteRunner\NUnitLiteRunner.csproj", "{12047296-B817-4C1A-B01B-5E619F72E407}" @@ -72,119 +62,6 @@ Global Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CoreProfile|Any CPU.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CoreProfile|Any CPU.Build.0 = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CoreProfile|ARM.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CoreProfile|x64.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.CoreProfile|x86.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Debug|ARM.ActiveCfg = Debug|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Debug|x64.ActiveCfg = Debug|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Debug|x86.ActiveCfg = Debug|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Instrument|Any CPU.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Instrument|Any CPU.Build.0 = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Instrument|ARM.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Instrument|x64.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Instrument|x86.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.PerformanceTest|x64.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.PerformanceTest|x86.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Release|Any CPU.Build.0 = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Release|ARM.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Release|x64.ActiveCfg = Release|Any CPU - {C5490CDC-3B79-42DC-ACFB-75A62E55862C}.Release|x86.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CoreProfile|Any CPU.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CoreProfile|ARM.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CoreProfile|x64.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CoreProfile|x86.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|ARM.ActiveCfg = Debug|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|x64.ActiveCfg = Debug|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|x86.ActiveCfg = Debug|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|Any CPU.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|ARM.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|x64.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|x86.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|x64.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|x86.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|ARM.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|x64.ActiveCfg = Release|Any CPU - {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|x86.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CoreProfile|Any CPU.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CoreProfile|Any CPU.Build.0 = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CoreProfile|ARM.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CoreProfile|x64.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CoreProfile|x86.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|ARM.ActiveCfg = Debug|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|x64.ActiveCfg = Debug|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|x86.ActiveCfg = Debug|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|Any CPU.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|Any CPU.Build.0 = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|ARM.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|x64.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|x86.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|x64.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|x86.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|ARM.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|x64.ActiveCfg = Release|Any CPU - {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|x86.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CoreProfile|Any CPU.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CoreProfile|Any CPU.Build.0 = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CoreProfile|ARM.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CoreProfile|x64.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CoreProfile|x86.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|ARM.ActiveCfg = Debug|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|x64.ActiveCfg = Debug|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|x86.ActiveCfg = Debug|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|Any CPU.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|Any CPU.Build.0 = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|ARM.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|x64.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|x86.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|x64.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|x86.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|Any CPU.Build.0 = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|ARM.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|x64.ActiveCfg = Release|Any CPU - {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|x86.ActiveCfg = Release|Any CPU {12047296-B817-4C1A-B01B-5E619F72E407}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU {12047296-B817-4C1A-B01B-5E619F72E407}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU {12047296-B817-4C1A-B01B-5E619F72E407}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU @@ -400,12 +277,7 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {B7BF9C9A-7349-499F-BD44-553190C0CFDC} = {1BD5D488-707E-4030-8AE8-80D93D04963F} - {C5490CDC-3B79-42DC-ACFB-75A62E55862C} = {B7BF9C9A-7349-499F-BD44-553190C0CFDC} - {B8BDEBCD-343C-42A9-8C17-C1318B42F011} = {87A17015-9338-431E-B338-57BDA03984C1} - {2A8463C8-8E4B-44F6-AA58-D1232DF88438} = {87A17015-9338-431E-B338-57BDA03984C1} {936467D2-1DD3-4243-BBB4-FCCB2CA1E3AC} = {1BD5D488-707E-4030-8AE8-80D93D04963F} - {CB7C32CD-A8D8-44A4-A595-DF4303566C81} = {936467D2-1DD3-4243-BBB4-FCCB2CA1E3AC} {767C2A1C-53F8-4048-BE02-CB4393B1CEB6} = {87A17015-9338-431E-B338-57BDA03984C1} {12047296-B817-4C1A-B01B-5E619F72E407} = {767C2A1C-53F8-4048-BE02-CB4393B1CEB6} {46C5B3D9-45E8-46B6-89F7-837D52C6187A} = {87A17015-9338-431E-B338-57BDA03984C1} diff --git a/MsgPack.sln b/MsgPack.sln index 21b2891d9..afe4b62ab 100644 --- a/MsgPack.sln +++ b/MsgPack.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26228.4 +VisualStudioVersion = 15.0.26403.0 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "common", "common", "{60EC42E9-D79B-4ADF-8F80-4DCD580061FD}" ProjectSection(SolutionItems) = preProject @@ -36,6 +36,18 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_common", "_common", "{EACF EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MsgPack", "src\MsgPack\MsgPack.csproj", "{5BCEC32E-990E-4DE5-945F-BD27326A7418}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Net35", "Net35", "{238C6067-E9DC-4270-90BD-39DCCF79C172}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.Net35", "test\MsgPack.UnitTest.Net35\MsgPack.UnitTest.Net35.csproj", "{B8BDEBCD-343C-42A9-8C17-C1318B42F011}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MsgPack.UnitTest.CodeDom.Net35", "test\MsgPack.UnitTest.CodeDom.Net35\MsgPack.UnitTest.CodeDom.Net35.csproj", "{2A8463C8-8E4B-44F6-AA58-D1232DF88438}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CLR", "CLR", "{7D8FA6E5-A27C-4672-90ED-06033F030A66}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tools", "tools", "{2F623C70-7B64-490E-8605-D75D444CF065}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "mpu", "src\mpu\mpu.csproj", "{CB7C32CD-A8D8-44A4-A595-DF4303566C81}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution CodeAnalysis|Any CPU = CodeAnalysis|Any CPU @@ -277,6 +289,152 @@ Global {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x64.Build.0 = Release|Any CPU {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x86.ActiveCfg = Release|Any CPU {5BCEC32E-990E-4DE5-945F-BD27326A7418}.Release|x86.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|Any CPU.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|ARM.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|x64.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.CodeAnalysis|x86.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|ARM.ActiveCfg = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|ARM.Build.0 = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|x64.ActiveCfg = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|x64.Build.0 = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|x86.ActiveCfg = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Debug|x86.Build.0 = Debug|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|Any CPU.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|Any CPU.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|ARM.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|ARM.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|Mixed Platforms.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|x64.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|x64.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|x86.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Instrument|x86.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|ARM.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|Mixed Platforms.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|x64.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|x64.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|x86.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.PerformanceTest|x86.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|Any CPU.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|Any CPU.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|ARM.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|ARM.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|x64.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|x64.Build.0 = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|x86.ActiveCfg = Release|Any CPU + {B8BDEBCD-343C-42A9-8C17-C1318B42F011}.Release|x86.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|Any CPU.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|ARM.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|Mixed Platforms.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|x64.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.CodeAnalysis|x86.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|ARM.ActiveCfg = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|ARM.Build.0 = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|x64.ActiveCfg = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|x64.Build.0 = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|x86.ActiveCfg = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Debug|x86.Build.0 = Debug|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|Any CPU.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|Any CPU.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|ARM.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|ARM.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|Mixed Platforms.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|Mixed Platforms.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|x64.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|x64.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|x86.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Instrument|x86.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|ARM.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|Mixed Platforms.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|x64.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|x64.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|x86.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.PerformanceTest|x86.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|Any CPU.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|ARM.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|ARM.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|x64.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|x64.Build.0 = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|x86.ActiveCfg = Release|Any CPU + {2A8463C8-8E4B-44F6-AA58-D1232DF88438}.Release|x86.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|Any CPU.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|Any CPU.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|ARM.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|ARM.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|Mixed Platforms.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|Mixed Platforms.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|x64.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|x64.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|x86.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.CodeAnalysis|x86.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|ARM.ActiveCfg = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|ARM.Build.0 = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|x64.ActiveCfg = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|x64.Build.0 = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|x86.ActiveCfg = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Debug|x86.Build.0 = Debug|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|Any CPU.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|Any CPU.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|ARM.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|ARM.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|Mixed Platforms.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|Mixed Platforms.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|x64.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|x64.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|x86.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Instrument|x86.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|Any CPU.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|Any CPU.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|ARM.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|ARM.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|Mixed Platforms.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|Mixed Platforms.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|x64.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|x64.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|x86.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.PerformanceTest|x86.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|Any CPU.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|ARM.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|ARM.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|x64.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|x64.Build.0 = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|x86.ActiveCfg = Release|Any CPU + {CB7C32CD-A8D8-44A4-A595-DF4303566C81}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -289,6 +447,12 @@ Global {7F8D9786-383D-4441-8A3A-5E305E26B965} = {7D2D3DAB-6EB6-463D-B186-E875DA48DF9F} {AF25D7E8-2F55-4431-BCE1-7C3E3C0E74E1} = {87A17015-9338-431E-B338-57BDA03984C1} {EACF1BF1-CB21-4D62-942C-3488F60B8D70} = {87A17015-9338-431E-B338-57BDA03984C1} - {5BCEC32E-990E-4DE5-945F-BD27326A7418} = {1BD5D488-707E-4030-8AE8-80D93D04963F} + {5BCEC32E-990E-4DE5-945F-BD27326A7418} = {7D8FA6E5-A27C-4672-90ED-06033F030A66} + {238C6067-E9DC-4270-90BD-39DCCF79C172} = {87A17015-9338-431E-B338-57BDA03984C1} + {B8BDEBCD-343C-42A9-8C17-C1318B42F011} = {238C6067-E9DC-4270-90BD-39DCCF79C172} + {2A8463C8-8E4B-44F6-AA58-D1232DF88438} = {238C6067-E9DC-4270-90BD-39DCCF79C172} + {7D8FA6E5-A27C-4672-90ED-06033F030A66} = {1BD5D488-707E-4030-8AE8-80D93D04963F} + {2F623C70-7B64-490E-8605-D75D444CF065} = {1BD5D488-707E-4030-8AE8-80D93D04963F} + {CB7C32CD-A8D8-44A4-A595-DF4303566C81} = {2F623C70-7B64-490E-8605-D75D444CF065} EndGlobalSection EndGlobal diff --git a/src/MsgPack/MsgPack.csproj b/src/MsgPack/MsgPack.csproj index 785f3a605..d905cf8f1 100644 --- a/src/MsgPack/MsgPack.csproj +++ b/src/MsgPack/MsgPack.csproj @@ -11,7 +11,7 @@ MsgPack MsgPack 512 - net45;net462;netstandard1.1;netstandard1.3;MonoAndroid10;Xamarin.iOS10 + net35;net45;net462;netstandard1.1;netstandard1.3;MonoAndroid10;Xamarin.iOS10 TRACE prompt 4 @@ -49,6 +49,9 @@ $(DefineConstants);FEATURE_TAP;FEATURE_CONCURRENT + + $(DefineConstants);NETFX_35 + $(DefineConstants);NETFX_45 @@ -108,7 +111,7 @@ - + diff --git a/src/MsgPack/Properties/AssemblyInfo.cs b/src/MsgPack/Properties/AssemblyInfo.cs index 55439dcb3..b264b41d6 100644 --- a/src/MsgPack/Properties/AssemblyInfo.cs +++ b/src/MsgPack/Properties/AssemblyInfo.cs @@ -26,6 +26,8 @@ [assembly: AssemblyDescription( "MessagePack for CLI(.NET/Mono) packing/unpacking library for" + #if NET4_5 ".NET Framework 4.5" +#elif NETFX_35 +".NET Framework 3.5" #elif WINDOWS_UWP "UWP" #elif NETSTANDARD1_1 @@ -49,13 +51,19 @@ [assembly: AssemblyFileVersion( "0.9.2259.1047" )] #if !NETSTANDARD1_1 && !NETSTANDARD1_3 +#if !NETFX_35 [assembly: SecurityRules( SecurityRuleSet.Level2, SkipVerificationInFullTrust = true )] +#endif // !NETFX_35 [assembly: AllowPartiallyTrustedCallers] #endif #if DEBUG || PERFORMANCE_TEST [assembly: InternalsVisibleTo( "MsgPack.UnitTest, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] [assembly: InternalsVisibleTo( "MsgPack.UnitTest.CodeDom, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] +#if NETFX_35 +[assembly: InternalsVisibleTo( "MsgPack.UnitTest.Net35, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] +[assembly: InternalsVisibleTo( "MsgPack.UnitTest.CodeDom.Net35, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] +#endif // NETFX_35 [assembly: InternalsVisibleTo( "MsgPack.UnitTest.BclExtensions, PublicKey=0024000004800000940000000602000000240000525341310004000001000100a967de8de9d45380b93a6aa56f64fc2cb2d3c9d4b400e00de01f31ba9e15cf5ca95926dbf8760cce413eabd711e23df0c133193a570da8a3bb1bdc00ef170fccb2bc033266fa5346442c9cf0b071133d5b484845eab17095652aeafeeb71193506b8294d9c8c91e3fd01cc50bdbc2d0eb78dd655bb8cd0bd3cdbbcb192549cb4" )] #if XAMARIN #if __ANDROID__ @@ -66,5 +74,3 @@ #endif // __IOS__ #endif // XAMARIN #endif // DEBUG || PERFORMANCE_TEST - - diff --git a/src/mpu/mpu.csproj b/src/mpu/mpu.csproj index 570bfa31a..be2ebdb9e 100644 --- a/src/mpu/mpu.csproj +++ b/src/mpu/mpu.csproj @@ -1,6 +1,5 @@  - - + Debug AnyCPU @@ -9,11 +8,10 @@ Properties mpu mpu - v4.5 + net35;net45 512 - ..\..\ true - + false AnyCPU @@ -42,42 +40,20 @@ + + + 1.1 + + Properties\CommonAssemblyInfo.cs - - - - - - - - - - - {c5490cdc-3b79-42dc-acfb-75a62e55862c} - MsgPack.Net35 - + - - - - - このプロジェクトは、このコンピューターにはない NuGet パッケージを参照しています。これらをダウンロードするには、NuGet パッケージの復元を有効にしてください。詳細については、http://go.microsoft.com/fwlink/?LinkID=322105 を参照してください。不足しているファイルは {0} です。 - - - - \ No newline at end of file diff --git a/src/mpu/packages.config b/src/mpu/packages.config deleted file mode 100644 index cb52cc4bd..000000000 --- a/src/mpu/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/test/MsgPack.UnitTest.CodeDom.Net35/MsgPack.UnitTest.CodeDom.Net35.csproj b/test/MsgPack.UnitTest.CodeDom.Net35/MsgPack.UnitTest.CodeDom.Net35.csproj index 692dcd8b4..588233bee 100644 --- a/test/MsgPack.UnitTest.CodeDom.Net35/MsgPack.UnitTest.CodeDom.Net35.csproj +++ b/test/MsgPack.UnitTest.CodeDom.Net35/MsgPack.UnitTest.CodeDom.Net35.csproj @@ -72,9 +72,9 @@ - - {c5490cdc-3b79-42dc-acfb-75a62e55862c} - MsgPack.Net35 + + {5bcec32e-990e-4de5-945f-bd27326a7418} + MsgPack {b8bdebcd-343c-42a9-8c17-c1318b42f011} diff --git a/test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj b/test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj index 6441d504f..94bd29cec 100644 --- a/test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj +++ b/test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj @@ -815,9 +815,9 @@ - - {c5490cdc-3b79-42dc-acfb-75a62e55862c} - MsgPack.Net35 + + {5bcec32e-990e-4de5-945f-bd27326a7418} + MsgPack diff --git a/tools/mpu/ReadMe.txt b/tools/mpu/ReadMe.txt new file mode 100644 index 000000000..db7b596bc --- /dev/null +++ b/tools/mpu/ReadMe.txt @@ -0,0 +1,5 @@ +Please build by own as following: + +msbuild (solutionroot)/src/mpu/mpu.csproj /p:Configuration=Release + +This will be drop mpu for .NET 3.5 and 4.5. \ No newline at end of file diff --git a/tools/mpu/bin/MsgPack.dll b/tools/mpu/bin/MsgPack.dll deleted file mode 100644 index 652bb716ddebe7438b6ab6fe599d116858c80788..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 556544 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%0Ax#`Az6@Ktl@Ff5uy_jGavb03hzM19ITJ~h9 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�TF=JEqww5xK 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 Q=*Yl-+s*&In?C}-0#0n>F8}}l diff --git a/tools/mpu/bin/MsgPack.xml b/tools/mpu/bin/MsgPack.xml deleted file mode 100644 index 42930db31..000000000 --- a/tools/mpu/bin/MsgPack.xml +++ /dev/null @@ -1,14810 +0,0 @@ - - - - MsgPack - - - - - Define bit operations which enforce big endian. - - - - - Defines binary related utilities. - - - - - Singleton empty []. - - - - - Manages internal thread-local buffers for packer/unpacker. - - - - - Debugger type proxy for . - - The element type of the collection. - - - - Debugger type proxy for . - - The key type of the dictionary. - The value type of the dictionary. - - - - Provides bit access for . - - - - - Value as . - - - - - Most significant byte of current endian. - - - - - 2nd bit from most significant byte of current endian. - - - - - 3rd byte from most significant byte of current endian. - - - - - Least byte of current endian. - - - - - Initializes a new instance of the type from specified . - - Value of . - - - - Initializes a new instance of the type from specified [] which is big endian. - - Array of which contains bytes in big endian. - Offset to read. - - - - Provides bit access for . - - - - - Value as . - - - - - Most significant byte of current endian. - - - - - 2nd bit from most significant byte of current endian. - - - - - 3rd byte from most significant byte of current endian. - - - - - 4th byte from most significant byte of current endian. - - - - - 5th byte from most significant byte of current endian. - - - - - 6th byte from most significant byte of current endian. - - - - - 7th byte from most significant byte of current endian. - - - - - Least significant byte of current endian. - - - - - Initializes a new instance of the type from specified [] which is big endian. - - Array of which contains bytes in big endian. - Offset to read. - - - - Exception occured when inbound stream is invalid as serialized Message Pack stream. - - - - - Initializes a new instance of the class with the default error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - - The exception that is the cause of the current exception, or a null if no inner exception is specified. - - - - - Initializes a new instance of the class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - An interface which is implemented by the objects which know how to pack themselves using specified . - - - - Custom serialization interfaces are lightweight way to implement custom serialization especially you own the type itself. - You can tweak individual member serialization as well. For example: - - Encode text data which may contain non-ASCII charactors with UTF-16 format. - Pack binary with encryption or compression. - - - - - - - Packs this object contents to the specified . - - The that this object will write to. - Packing options. This value can be null. - - is null. - - - Failed to serialize this object. - - - - In general, objet's state will be serialized as array or map. - If so, emit array/map header with the items count via or , - then serialize states themselves. - - - On the other hand, value types may be serialized as single value. - For example, can be serialized as int64 value with its Ticks property. - - - - - - An position of seekable or offset from start of this instance. - - - - - An position of seekable or offset from start of this instance before last operation. - - - - - Starts unpacking of current subtree. - - - to unpack current subtree. - This will not be null. - - - - - Read subtree item from current stream. - - - true, if position is sucessfully move to next entry; - false, if position reaches the tail of the Message Pack stream. - - - This method only be called from . - - - - - An interface which is implemented by the objects which know how to unpack themselves using specified . - - - - - - - - Unpacks this object contents from the specified . - - The that this object will read from. - - is null. - - - Failed to deserialize this object. - - - - In general, objet's state is serialized as array or map. - If so, reading array/map header and then read individual fields (note that every state has their key string when the object serialized as map). - You should accept both of array and map for the object itself, and allow string and underlying numerics for enum values as "torelant reader". - - - On the other hand, value types may be serialized as single value. - For example, can be serialized as int64 value with its Ticks property. - - - - - - Defines known ext type code for MessagePack for CLI. - - - Note that values in this class are not guaranteed as interoperable with other implementations. - These are just known by MessagePack for CLI implementation. - - - - - Gets the ext type code which represents multidimensional array. - - - 0x1. - - - - - Defines known ext type name for MessagePack for CLI. - - - Note that values in this class are not guaranteed as interoperable with other implementations. - These are just known by MessagePack for CLI implementation. - - - - - Gets the ext type name which represents multidimensional array. - - - "MultidimensionalArray". - - - - - Exception occurs when serialized stream contains structures or features which will never be supported by MsgPack/CLI implementation. - - - - - Initializes a new instance of the class with the default error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - - The exception that is the cause of the current exception, or a null if no inner exception is specified. - - - - - Initializes a new instance of the class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - Define common convert rountines specific to MessagePack. - - - - - Encode specified string by default encoding. - - String value. - Encoded . - - is null. - - - - - Decode specified byte[] by default encoding. - - Byte[] value. - Decoded . - - is null. - - - contains non-UTF-8 bits. - - - - - Convert specified to . - - - value which is unpacked from packed message and may represent date-time value. - - - . Offset of this value always 0. - - - - - Convert specified to . - - - value which is unpacked from packed message and may represent date-time value. - - - . This value is always UTC. - - - - - Convert specified to as MessagePack defacto-standard. - - . - - UTC epoc time from 1970/1/1 0:00:00, in milliseconds. - - - - - Convert specified to as MessagePack defacto-standard. - - . - - UTC epoc time from 1970/1/1 0:00:00, in milliseconds. - - - - - Represents Message Pack extended type object. - - - - - A type code of this object. - - - - - Gets a type code of this object. - - - A type code. Note that values over are reserved for MsgPack spec itself. - - - - - A binary value portion of this object. - - - - - Gets a binary value portion of this object. - - - A binary value portion of this object. This value will not be null. - - - - - Gets a copy of the binary value portion of this object. - - - A copy of the binary value portion of this object. This value will not be null. - - - - - Gets a value indicating whether this instance is valid. - - - true if this instance is valid; otherwise, false. - - - - - Initializes a new instance of the struct. - - A type code of this extension object. - A binary value portion. - - The is over 127. Higher values are reserved for MessagePack format specification. - - The is null. - - - - Creates a new instance of the struct. - - A type code of this extension object. - A binary value portion. - The is null. - - This method allows reserved type code. It means that this method does not throw exception when the is reserved value (greater then 0x7F). - - - - - Returns a that represents this instance. - - - A that represents this instance. - - - - - Returns a hash code for this instance. - - - A hash code for this instance, suitable for use in hashing algorithms and data structures like a hash table. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified is equal to this instance. - - The to compare with this instance. - - true if the specified is equal to this instance; otherwise, false. - - - - - Determines whether the specified s are equal. - - A . - A . - - true if the specified s are equal; otherwise, false. - - - - - Determines whether the specified s are not equal. - - A . - A . - - true if the specified s are not equal; otherwise, false. - - - - - Represents deserialized object of MsgPack. - - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Initializes a new instance of the [] type which wraps [] instance with specified manner. - - A bytes array to be wrapped. - - This constructor invokes with false, that means if you pass tha bytes array which is valid utf-8, resulting object can be , - and its should be . - - - - - Initializes a new instance of the [] type which wraps [] instance with specified manner. - - A bytes array to be wrapped. - true if always should be binary; false, otherwise. - - When the is true, then resulting object represents binary even if the is valid utf-8 sequence, - that is, its should be []. - On the other hand, when contrast, the is false, and if the is valid utf-8, - then the resulting object can be , - and its should be . - - - - - Initializes a new instance of the type which wraps instance. - - A value to be wrapped. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert this instance to [] instance. - - [] instance corresponds to this instance. - - - - Convert this instance to instance. - - instance corresponds to this instance. - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert []instance to instance. - - [] instance. - instance corresponds to . - - - - Convert instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Convert this instance to [] instance. - - instance. - [] instance corresponds to . - - - - Convert this instance to instance. - - instance. - instance corresponds to . - - - - Instance represents nil. This is equal to default value. - - - - - Get whether this instance represents nil. - - If this instance represents nil object, then true. - - - - Initializes a new instance wraps . - - - The collection to be copied. - - - - - Initializes a new instance wraps . - - - The collection to be copied or used. - - - true if the is immutable collection; - othereise, false. - - - When the collection is truely immutable or dedicated, you can specify true to the . - When is true, this constructor does not copy its contents, - or copies its contents otherwise. - - Note that both of IReadOnlyList and is NOT immutable - because the modification to the underlying collection will be reflected to the read-only collection. - - - - - - Initializes a new instance wraps . - - - The dictitonary to be copied. - - - - - Initializes a new instance wraps . - - - The dictitonary to be copied or used. - - - true if the is immutable collection; - othereise, false. - - - When the collection is truely immutable or dedicated, you can specify true to the . - When is true, this constructor does not copy its contents, - or copies its contents otherwise. - - Note that both of IReadOnlyDictionary and ReadOnlyDictionary is NOT immutable - because the modification to the underlying collection will be reflected to the read-only collection. - - - - - - Initializes a new instance wraps . - - which represents byte array or UTF-8 encoded string. - - - - Compare two instances are equal. - - instance. - - If is and its value is equal to this instance, then true. - Otherwise false. - - - - - Compare two instances are equal. - - instance. - - Whether value of is equal to this instance or not. - - - - - Get hash code of this instance. - - Hash code of this instance. - - - - Returns a string that represents the current object. - - - A string that represents the current object. - - - - DO NOT use this value programmically. - The purpose of this method is informational, so format of this value subject to change. - - - - - - Determine whether the underlying value of this instance is specified type or not. - - Target type. - If the underlying value of this instance is then true, otherwise false. - - - - Determine whether the underlying value of this instance is specified type or not. - - Target type. - If the underlying value of this instance is then true, otherwise false. - is null. - - - - Get the value indicates whether this instance wraps raw binary (or string) or not. - - This instance wraps raw binary (or string) then true. - - - - Get the value indicates whether this instance wraps list (array) or not. - - This instance wraps list (array) then true. - - - - Get the value indicates whether this instance wraps list (array) or not. - - This instance wraps list (array) then true. - - - - Get the value indicates whether this instance wraps dictionary (map) or not. - - This instance wraps dictionary (map) then true. - - - - Get the value indicates whether this instance wraps dictionary (map) or not. - - This instance wraps dictionary (map) then true. - - - - Get underlying type of this instance. - - Underlying . - - - - Packs this instance itself using specified . - - . - Packing options. This value can be null. - is null. - - - - Gets the underlying value as string encoded with specified . - - - The string. - Note that some returns null if the binary is not valid encoded string. - - - - - Get underlying value as UTF8 string. - - Underlying raw binary. - - - - Get underlying value as UTF-16 string. - - Underlying string. - - This method detects BOM. If BOM is not exist, them bytes should be Big-Endian UTF-16. - - - - - Get underlying value as UTF-16 charcter array. - - Underlying string. - - - - Get underlying value as . - - Underlying . - - - - Get underlying value as . - - Underlying . - - - - Get underlying value as . - - Underlying . - - - - Wraps specified object as recursively. - - Object to be wrapped. - wrapps . - - is not primitive value type, list of , - dictionary of , , [], or null. - - - - - Get boxed underlying value for this object. - - Boxed underlying value for this object. - - - - Compare two instances are equal. - - instance. - instance. - - Whether value of and are equal each other or not. - - - - - Compare two instances are not equal. - - instance. - instance. - - Whether value of and are not equal each other or are equal. - - - - - Convert [] instance to instance. - - [] instance. - instance corresponds to . - - - - Implements for . - - - This dictionary handles type semantics for the key. - Additionally, this dictionary implements 'freezing' feature. - For details, see , , and . - - - - - Gets a value indicating whether this instance is frozen. - - - true if this instance is frozen; otherwise, false. - - - This operation is an O(1) operation. - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - This operation is an O(1) operation. - - - - - Gets or sets the element with the specified key. - - - The element with the specified key. - - Key for geting or seting value. - - is . - - - The property is retrieved and is not found. - - - The property is set and this instance is frozen. - - - - Note that tiny integers are considered equal regardless of its CLI , - and UTF-8 encoded bytes are considered equals to . - - - This method approaches an O(1) operation. - - - - - - Gets an containing the keys of the . - - - An containing the keys of the object. - This value will not be null. - - - This operation is an O(1) operation. - - - - - Gets an containing the values of the . - - - An containing the values of the object. - This value will not be null. - - - This operation is an O(1) operation. - - - - - Initializes an empty new instance of the class with default capacity. - - - This operation is an O(1) operation. - - - - - Initializes an empty new instance of the class with specified initial capacity. - - The initial capacity. - - is negative. - - - This operation is an O(1) operation. - - - - - Initializes a new instance of the class. - - The dictionary to be copied from. - - is null. - - - Failed to copy from . - - - This constructor takes O(N) time, N is of . - Initial capacity will be of . - - - - - Determines whether the contains an element with the specified key. - - The key to locate in the . - - is . - - - true if the contains an element with the key; otherwise, false. - - - This method approaches an O(1) operation. - - - - - Determines whether the contains an element with the specified value. - - The value to locate in the . - - true if the contains an element with the value; otherwise, false. - - - This method approaches an O(N) operation where N is . - - - - - Gets the value associated with the specified key. - - - The key whose value to get. - - - When this method returns, the value associated with the specified key, if the key is found; - otherwise, the default value for the type of the parameter. - This parameter is passed uninitialized. - - - true if this dictionary contains an element with the specified key; otherwise, false. - - - is . - - - - Note that tiny integers are considered equal regardless of its CLI , - and UTF-8 encoded bytes are considered equals to . - - - This method approaches an O(1) operation. - - - - - - Adds the specified key and value to the dictionary. - - - The key of the element to add. - - - The value of the element to add. The value can be null for reference types. - - - An element with the same key already does not exist in the dictionary and sucess to add then newly added node; - otherwise null. - - - already exists in this dictionary. - Note that tiny integers are considered equal regardless of its CLI , - and UTF-8 encoded bytes are considered equals to . - - - is . - - - If is less than the capacity, this method approaches an O(1) operation. - If the capacity must be increased to accommodate the new element, - this method becomes an O(N) operation, where N is . - - - - - Removes the element with the specified key from the . - - The key of the element to remove. - - true if the element is successfully removed; otherwise, false. - This method also returns false if was not found in the original . - - - is . - - - This method approaches an O(1) operation. - - - - - Removes all items from the . - - - This method approaches an O(N) operation, where N is . - - - - - Returns an enumerator that iterates through the . - - - Returns an enumerator that iterates through the . - - - This method is an O(1) operation. - - - - - Freezes this instance. - - - This instance itself. - This value will not be null and its is true. - - - This method freezes this instance itself. - This operation is an O(1) operation. - - - - - Gets a copy of this instance as frozen instance. - - - New instance which contains same items as this instance. - This value will not be null and its is true. - - - This method does not freeze this instance itself. - This operation is an O(N) operation where O(N) of items. - - - - - Enumerates the elements of a in order. - - - - - Gets the element at the current position of the enumerator. - - - The element in the underlying collection at the current position of the enumerator. - - - - - Gets the element at the current position of the enumerator. - - - The element in the collection at the current position of the enumerator, as an . - - - The enumerator is positioned before the first element of the collection or after the last element. - - - - - Releases all resources used by the this instance. - - - - - Advances the enumerator to the next element of the underlying collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, which is before the first element in the collection. - - - The collection was modified after the enumerator was created. - - - - - Enumerates the elements of a in order. - - - - - Gets the element at the current position of the enumerator. - - - The element in the collection at the current position of the enumerator, as an . - - - The enumerator is positioned before the first element of the collection or after the last element. - - - - - Gets the element at the current position of the enumerator. - - - The element in the dictionary at the current position of the enumerator, as a . - - - The enumerator is positioned before the first element of the collection or after the last element. - - - - - Gets the key of the element at the current position of the enumerator. - - - The key of the element in the dictionary at the current position of the enumerator. - - - The enumerator is positioned before the first element of the collection or after the last element. - - - - - Gets the value of the element at the current position of the enumerator. - - - The value of the element in the dictionary at the current position of the enumerator. - - - The enumerator is positioned before the first element of the collection or after the last element. - - - - - Advances the enumerator to the next element of the underlying collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, which is before the first element in the collection. - - - The collection was modified after the enumerator was created. - - - - - Represents the set of keys. - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - - Copies the entire collection to a compatible one-dimensional array, starting at the beginning of the target array. - - - The one-dimensional that is the destination of the elements copied from this dictionary. - The must have zero-based indexing. - - - - - Copies the entire collection to a compatible one-dimensional array, - starting at the specified index of the target array. - - - The one-dimensional that is the destination of the elements copied from this dictionary. - The must have zero-based indexing. - - - The zero-based index in at which copying begins. - - - - - Copies a range of elements from this collection to a compatible one-dimensional array, - starting at the specified index of the target array. - - - The zero-based index in the source dictionary at which copying begins. - - - The one-dimensional that is the destination of the elements copied from this dictionary. - The must have zero-based indexing. - - - The zero-based index in at which copying begins. - - - The number of elements to copy. - - - - - Determines whether this collection contains a specific value. - - - The object to locate in this collection. - - true if is found in this collection; otherwise, false. - - - - - Determines whether this set is proper subset of the specified collection. - - - The collection to compare to the current set. - - - true if this set is proper subset of the specified collection; otherwise, false. - - - is Nothing. - - - - - Determines whether this set is proper superset of the specified collection. - - - The collection to compare to the current set. - - - true if this set is proper superset of the specified collection; otherwise, false. - - - is Nothing. - - - - - Determines whether this set is subset of the specified collection. - - - The collection to compare to the current set. - - - true if this set is subset of the specified collection; otherwise, false. - - - is Nothing. - - - - - Determines whether this set is superset of the specified collection. - - - The collection to compare to the current set. - - - true if this set is superset of the specified collection; otherwise, false. - - - is Nothing. - - - - - Determines whether the current set and a specified collection share common elements. - - - The collection to compare to the current set. - - - true if this set and share at least one common element; otherwise, false. - - - is Nothing. - - - - - Determines whether this set and the specified collection contain the same elements. - - - The collection to compare to the current set. - - - true if this set is equal to ; otherwise, false. - - - is Nothing. - - - - - Returns an enumerator that iterates through this collction. - - - Returns an enumerator that iterates through this collction. - - - - - Enumerates the elements of a . - - - - - Gets the element at the current position of the enumerator. - - - The element in the underlying collection at the current position of the enumerator. - - - - - Gets the element at the current position of the enumerator. - - - The element in the collection at the current position of the enumerator, as an . - - - The enumerator is positioned before the first element of the collection or after the last element. - - - - - Releases all resources used by the this instance. - - - - - Advances the enumerator to the next element of the underlying collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, which is before the first element in the collection. - - - The collection was modified after the enumerator was created. - - - - - Represents the collection of values in a . - - - - - Gets the number of elements contained in the . - - - The number of elements contained in the . - - - - - Copies the entire collection to a compatible one-dimensional array, starting at the beginning of the target array. - - - The one-dimensional that is the destination of the elements copied from this dictionary. - The must have zero-based indexing. - - - - - Copies the entire collection to a compatible one-dimensional array, - starting at the specified index of the target array. - - - The one-dimensional that is the destination of the elements copied from this dictionary. - The must have zero-based indexing. - - - The zero-based index in at which copying begins. - - - - - Copies a range of elements from this collection to a compatible one-dimensional array, - starting at the specified index of the target array. - - - The zero-based index in the source dictionary at which copying begins. - - - The one-dimensional that is the destination of the elements copied from this dictionary. - The must have zero-based indexing. - - - The zero-based index in at which copying begins. - - - The number of elements to copy. - - - - - Determines whether this collection contains a specific value. - - - The object to locate in this collection. - - true if is found in this collection; otherwise, false. - - - - - Returns an enumerator that iterates through this collction. - - - Returns an enumerator that iterates through this collction. - - - - - Enumerates the elements of a . - - - - - Gets the element at the current position of the enumerator. - - - The element in the underlying collection at the current position of the enumerator. - - - - - Gets the element at the current position of the enumerator. - - - The element in the collection at the current position of the enumerator, as an . - - - The enumerator is positioned before the first element of the collection or after the last element. - - - - - Releases all resources used by the this instance. - - - - - Advances the enumerator to the next element of the underlying collection. - - - true if the enumerator was successfully advanced to the next element; - false if the enumerator has passed the end of the collection. - - - The collection was modified after the enumerator was created. - - - - - Sets the enumerator to its initial position, which is before the first element in the collection. - - - The collection was modified after the enumerator was created. - - - - - Implements of . - - - - - Initializes a new instance of the class. - - - - - Determines whether two objects of type are equal. - - The first object to compare. - The second object to compare. - - true if the specified objects are equal; otherwise, false. - - - - - Returns a hash code for the specified . - - The . - - A hash code for , suitable for use in hashing algorithms and data structures like a hash table. - - - - - Encapselates and its serialized UTF-8 bytes. - - - - - Represents unpacking error when message type is unknown or unavailable. - - - - - Initializes a new instance of the class with the default error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - - The exception that is the cause of the current exception, or a null if no inner exception is specified. - - - - - Initializes a new instance of the class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - Implements serialization feature of MsgPack. - - - - - Gets or sets the default for all instances. - - - The default . - The default value is . - - - - Note that modification of this value will affect all new instances from the point. - Existent instances are not afectted by the modification. - - - This property is intended to be set in application initialization code. - - - Note that the default value is , not . - - - - - - Get whether this class supports seek operation and quering property. - - If this class supports seek operation and quering property then true. - - - - Get current position of underlying stream. - - Opaque position value of underlying stream. - - A class of this instance does not support seek. - - - - - Gets a compatibility options for this instance. - - - The compatibility options. - - - - - Initializes a new instance of the class with . - - - - - Initializes a new instance of the class with specified . - - A which specifies compatibility options. - - - - Create standard Safe instancde wrapping specified with . - - object. This stream will be closed when is called. - Safe . This will not be null. - is null. - - You can specify any derived class like FileStream, , - NetworkStream, UnmanagedMemoryStream, or so. - - - - - Create standard Safe instancde wrapping specified with specified . - - object. This stream will be closed when is called. - A which specifies compatibility options. - Safe . This will not be null. - is null. - - You can specify any derived class like FileStream, , - NetworkStream, UnmanagedMemoryStream, or so. - - - - - Create standard Safe instancde wrapping specified with . - - object. - - true to close when this instance is disposed; - false, otherwise. - - Safe . This will not be null. - is null. - - You can specify any derived class like FileStream, , - NetworkStream, UnmanagedMemoryStream, or so. - - - - - Create standard Safe instancde wrapping specified with specified . - - object. - A which specifies compatibility options. - - true to close when this instance is disposed; - false, otherwise. - - Safe . This will not be null. - is null. - - You can specify any derived class like FileStream, , - NetworkStream, UnmanagedMemoryStream, or so. - - - - - Create standard Safe instancde wrapping specified with specified . - - object. - A which specifies compatibility options. - which specifies stream handling options. - Safe . This will not be null. - is null. - - You can specify any derived class like FileStream, , - NetworkStream, UnmanagedMemoryStream, or so. - - - - - Clean up internal resources. - - - - - When overridden by derived class, release all unmanaged resources, optionally release managed resources. - - If true, release managed resources too. - - - - When overridden by derived class, change current position to specified offset. - - Offset. You shoud not specify the value which causes underflow or overflow. - - A class of this instance does not support seek. - - - - - When overridden by derived class, writes specified byte to stream using implementation specific manner. - - A byte to be written. - - - - Writes specified bytes to stream using implementation specific most efficient manner. - - Collection of bytes to be written. - - - - Writes specified bytes to stream using implementation specific most efficient manner. - - Bytes to be written. - If the can be treat as immutable (that is, can be used safely without copying) then true. - - - - Packs value to current stream. - - value. - This instance. - This instance has been disposed. - - - - Try packs value to current stream strictly. - - Maybe value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs value to current stream. - - value. - This instance. - This instance has been disposed. - - - - Try packs value to current stream strictly. - - Maybe value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs value to current stream. - - value. - This instance. - - - - Try packs value to current stream as tiny fix num. - - Maybe tiny value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Try packs value to current stream as tiny fix num. - - Maybe tiny value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs a null value to current stream. - - This instance. - This instance has been disposed. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Pack nullable value. - - Value to serialize. - This instance. - - - - Packs value to current stream. - - value. - This instance. - This instance has been disposed. - - - - Try packs value to current stream strictly. - - Maybe value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs value to current stream. - - value. - This instance. - This instance has been disposed. - - - - Try packs value to current stream strictly. - - Maybe value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs value to current stream. - - value. - This instance. - This instance has been disposed. - - - - Try packs value to current stream strictly. - - Maybe value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs value to current stream. - - value. - This instance. - This instance has been disposed. - - - - Try packs value to current stream strictly. - - Maybe value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs value to current stream. - - value. - This instance. - This instance has been disposed. - - - - Try packs value to current stream strictly. - - Maybe value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs value to current stream. - - value. - This instance. - This instance has been disposed. - - - - Try packs value to current stream strictly. - - Maybe value. - If has be packed successfully then true, otherwise false (normally, larger type required). - - - - Packs value to current stream. - - value. - This instance. - - - - Packs value to current stream. - - value. - This instance. - - - - Bookkeep array length or list items count to be packed on current stream. - - Array length or list items count. - This instance. - This instance has been disposed. - - - - Bookkeep array length or list items count to be packed on current stream. - - Array length or list items count. - - - - Bookkeep dictionary (map) items count to be packed on current stream. - - Dictionary (map) items count. - This instance. - This instance has been disposed. - - - - Bookkeep dictionary (map) items count to be packed on current stream. - - Dictionary (map) items count. - - - - Bookkeep byte length to be packed on current stream as the bytes might represent well formed encoded string. - - A length of byte array. - This instance. - This instance has been disposed. - - This method effectively acts as alias of for compatibility. - - - - - Bookkeep byte length to be packed on current stream as the bytes should represent well formed encoded string. - - A length of encoded byte array. - This instance. - This instance has been disposed. - - - - Bookkeep byte length to be packed on current stream as the bytes should not represent well formed encoded string. - - A length of byte array. - This instance. - This instance has been disposed. - - - - Bookkeep byte length to be packed on current stream as the bytes might represent well formed encoded string. - - A length of byte array. - - This method acts as alias of for compatibility. - - - - - Bookkeep byte length to be packed on current stream as the bytes should represent well formed encoded string. - - A length of encoded byte array. - - - - Bookkeep byte length to be packed on current stream as the bytes should not represent well formed encoded string. - - A length of byte array. - - - - Packs specified byte sequence(it may or may not be string to current stream. - - Source bytes its size is not known. - This instance. - This instance has been disposed. - - This method use str types (previously known as raw types) for compability. - - - - - Packs specified byte collection(it may or may not be string to current stream. - - Source bytes its size is known. - This instance. - This instance has been disposed. - - This method use str types (previously known as raw types) for compability. - - - - - Packs specified byte array(it may or may not be string to current stream. - - A byte array. - This instance. - This instance has been disposed. - - This method use str types (previously known as raw types) for compability. - - - - - Packs specified byte sequence(it should not be string to current stream. - - Source bytes its size is not known. - This instance. - This instance has been disposed. - - This method use bin types unless contains . - - - - - Packs specified byte collection(it should not be string to current stream. - - Source bytes its size is known. - This instance. - This instance has been disposed. - - This method use bin types unless contains . - - - - - Packs specified byte array(it should not be string to current stream. - - A byte array. - This instance. - This instance has been disposed. - - This method use bin types unless contains . - - - - - Packs specified charactor sequence to current stream with UTF-8 . - - Source chars its size is not known. - This instance. - This instance has been disposed. - - - - Packs specified charactor sequence to current stream with specified . - - Source chars its size is not known. - to be used. - This instance. - is null. - This instance has been disposed. - - - - Packs specified charactor sequence to current stream with specified . - - Source chars its size is not known. - to be used. - is null. - - - - Packs specified string to current stream with UTF-8 . - - Source string. - This instance. - This instance has been disposed. - - - - Packs specified string to current stream with specified . - - Source string. - to be used. - This instance. - is null. - This instance has been disposed. - - - - Packs specified string to current stream with specified . - - Source string. - to be used. - is null. - - - - Packs specified byte array to current stream without any header. - - Source byte array. - This instance. - This instance has been disposed. - - If you forget to write header first, then resulting stream will be corrupsed. - - - - - Packs specified byte sequence to current stream without any header. - - Source byte array. - This instance. - This instance has been disposed. - - If you forget to write header first, then resulting stream will be corrupsed. - - - - - Bookkeep collection count to be packed on current stream. - - Collection count to be written. - This instance. - This instance has been disposed. - - - - Bookkeep dictionary count to be packed on current stream. - - Dictionary count to be written. - This instance. - This instance has been disposed. - - - - Packs an extended type value. - - A type code of the extended type value. - A binary value portion of the extended type value. - This instance. - is null. - property contains . - This instance has been disposed. - - - - Packs an extended type value. - - A to be packed. - This instance. - of is false. - property contains . - This instance has been disposed. - - - - Defines compatibility options for . - - - - - No compatibility options. s use newest behavior. - - - - - Packs byte array as raw(str) value, and also prohibits usage of str8 type for legacy unpacker implementations. - - - - - Prohibits usage of any ext types for legacy unpacker implementations. - - - - - s should be use classic behavior. That is, do not use str8 and any ext types, and byte arrays must be packed as raw. - - - - - Defines extension method to pack or unpack various objects. - - - - - Packs specified value with the default context. - - The type of the value. - The . - The value to be serialized. - . - - is null. - - - Cannot serialize . - - - - - Packs specified value with the specified context. - - The type of the value. - The . - The value to be serialized. - The holds shared serializers. - . - - is null. - Or is null. - - - Cannot serialize . - - - - - Packs specified collection with the default context. - - The type of items of the collection. - The . - The collection to be serialized. - . - - is null. - - - Cannot serialize . - - - - - Packs specified collection with the specified context. - - The type of items of the collection. - The . - The collection to be serialized. - The holds shared serializers. - . - - is null. - Or is null. - - - Cannot serialize . - - - - - Packs specified collection with the default context. - - The type of items of the collection. - The . - The collection to be serialized. - . - - is null. - - - Cannot serialize . - - - - - Packs specified collection with the specified context. - - The type of items of the collection. - The . - The collection to be serialized. - The holds shared serializers. - . - - is null. - Or is null. - - - Cannot serialize . - - - - - Packs specified dictionary with the default context. - - The type of keys of the dictionary. - The type of values of the dictionary. - The . - The dictionary to be serialized. - . - - is null. - - - Cannot serialize . - - - - - Packs specified dictionary with the specified context. - - The type of keys of the dictionary. - The type of values of the dictionary. - The . - The dictionary to be serialized. - The holds shared serializers. - . - - is null. - Or is null. - - - Cannot serialize . - - - - - Packs specified dictionary with the default context. - - The type of keys of the dictionary. - The type of values of the dictionary. - The . - The dictionary to be serialized. - . - - is null. - - - Cannot serialize . - - - - - Packs specified dictionary with the specified context. - - The type of keys of the dictionary. - The type of values of the dictionary. - The . - The dictionary to be serialized. - The holds shared serializers. - . - - is null. - Or is null. - - - Cannot serialize . - - - - - Packs specified collection with the default context. - - The type of the value. - The . - The collection to be serialized. - . - - is null. - - - Cannot serialize the item of . - - - - - Packs specified value with the specified context. - - The type of the value. - The . - The collection to be serialized. - The holds shared serializers. - . - - is null. - Or is null. - - - Cannot serialize the item of . - - - - - Packs specified value with the default context. - - The . - The value to be serialized. - . - - is null. - - - Cannot serialize . - - - - - Packs specified value with the specified context. - - The . - The value to be serialized. - The holds shared serializers. - . - - is null. - Or is null. - - - Cannot serialize . - - - - - Unpacks specified type value with the default context. - - The type of the deserializing object. - The . - The deserialized object. - - is null. - - - Cannot deserialize object. - - - - - Unpacks specified type value with the specified context. - - The type of the deserializing object. - The . - The holds shared serializers. - The deserialized object. - - is null. - Or is null. - - - Cannot deserialize object. - - - - - Represents options for stream on / creation. - - - - - Gets or sets a value indicating whether stream should be wrapped with buffering stream. - - - true if stream should be wrapped with buffering stream; otherwise, false. - - - - This option is important to improve asynchronous operation performance because deserialization tend to be chatty, - so many tiny asynchrnous operation are issued and then numerous context switching may occurred. - Wrapping with buffering stream mitigate context switching because it should avoid asynchronous operation - as long as it has buffered value. - - - Current built-in implementation uses for buffering, - and avoid buffering for following in-memory or stream with buffering feature: - - itself. - . - . - which has own internal buffer. - - - - Logically, it is preferred that you should wrap with yourself for underlying stream - for wrapper stream such as , , etc. - - - - - - - Gets or sets the size of the buffer of wrapping stream in bytes used when is true. - - - The size of the buffer of wrapping stream in bytes used when is true. - The default is 64K. - If you attempt to set 0 or negative value, then the value will be set to 1. - - - - - Gets or sets a value indicating whether / will dispose underlying stream when their Dispose(Boolean) method are called with true value. - - - true if / will dispose underlying stream when their Dispose(Boolean) method are called with true value; - otherwise, false. - - - - - Initializes a new instance of the class. - - - - - Represents options of packing. - - - - - Get encoding for string. - - - for string. Default is UTF-8 encoding without BOM. - - - - - Initializes a new instance of the class. - - - - - Indicates type of action delegates. - - - - - Represents information of the cached delegate instance which should be stored in readonly instance field. - - - - - Represents constructor which may not have built metadata. - - - - - void PackUnderlyingValueTo(Packer, TEnum) - - - - - TEnum UnpackFromUnderlyingValue(MessagePackObject) - - - - - Represents field which may not have built metadata. - - - - - Defines a common interface for code construct which abstracts code constructs used in serializer builders. - - - - - Gets the context type of this construct. - - - The context type of this construct. - This value will not be null, but might be . - - - A context type represents evaluation context for IL emitting or expression type for Expression Tree. - - - - - Defines a common interface for serializer builder. - - - - - Builds the serializer and returns its new instance. - - The context information. - The substitution type if the target type is abstract type. null when the target type is not abstract type. - The schema which contains schema for collection items, dictionary keys, or tuple items. This value may be null. - - Newly created serializer object. - This value will not be null. - - - - - Defines common interface for context objects of serializer code generation. - - - - - Generates codes for this context. - - A collection which correspond to genereated codes. - - - - Gets the serialization context which holds various serialization configuration. - - - The serialization context. This value will not be null. - - - - - Defines a common interface for serializer builder which supports code generation. - - - - - Builds the serializer code using specified code generation context. - - - The which holds configuration and stores generated code constructs. - - The substitution type if builder's target type is abstract type. null when builder's target type is not abstract type. - The schema which contains schema for collection items, dictionary keys, or tuple items. This value must not be null. - - is null. - - - This class does not support code generation. - - - - - Represents method which may not have built metadata. - - - - - Defines common features for serializer builder. - - The type of the context which holds global information for generating serializer. - The type of the construct which abstracts code constructs. - - - - Emits anonymous null reference literal. - - The generation context. - The type of null reference. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant value. - - The generation context. - The constant value. - The generated construct. - - - - Emits the constant enum value. - - The generation context. - The type of the enum. - The constant value. - The generated construct. - is not enum. - - - - Emits the constant default(T) value of value type. - - The generation context. - The type of the valueType. - The generated construct. - - - - Emits the loading this reference expression. - - The generation context. - The generated construct. - - - - Emits the box expression. - - The generation context. - Type of the value to be boxed. - The value to be boxed. - The generated construct. - - - - Emits the cast or unbox expression. - - The generation context. - Type of the value to be casted or be unboxed. - The value to be casted or be unboxed. - The generated construct. - - - - Emits the not expression. - - The generation context. - The boolean expression to be . - The generated construct. - - - - Emits the equals expression. - - The generation context. - The left expression. - The right expression. - The generated construct. - - - - Emits the not equals expression. - - The generation context. - The left expression. - The right expression. - The generated construct. - - - - Emits the greater than expression. - - The generation context. - The left expression. - The right expression. - The generated construct. - - - - Emits the less than expression. - - The generation context. - The left expression. - The right expression. - The generated construct. - - - - Emits the unary increment expression. - - The generation context. - The int32 value to be incremented. - The generated construct. - - - - Emits the elementType-of expression. - - The generation context. - The elementType. - The generated construct. - - - - Emits the 'methodof' expression. - - The generation context. - The method to be retrieved. - The generated construct. - - - - Emits the 'fieldof' expression. - - The generation context. - The field to be retrieved. - The generated construct. - - - - Emits the sequential statements. Note that the context elementType is void. - - The generation context. - The type of context. - The statements. - The generated construct. - - - - Emits the sequential statements. Note that the context elementType is void. - - The generation context. - The type of context. - The statements. - The generated construct. - - - - Creates the argument reference. - - The generation context. - The type of the parameter for debugging puropose. - The name of the parameter. - The index of the parameters. - - The generated construct which represents an argument reference. - - - - - Declares the local variable. - - The generation context. - The type of the variable. - The name of the variable for debugging puropose. - - The generated construct which represents local variable declaration AND initialization, and reference. - - - - - Emits the statement which loads value from the local variable. - - The generation context. - The variable to be loaded. - The generated construct. - - - - Emits the statement which stores specified value to the local variable. - - The generation context. - The variable to be stored. - The value to be stored. null for context value. - The generated construct. - - - - Emits the make ref instruction. - - The context. - The target to be made its managed reference. - The managed reference of the . - - - - Emits the create new object expression. - - The generation context. - The variable which will store created value type object. - The constructor. - The arguments. - - The generated construct which represents new obj instruction. - Note that created object remains in context. - - - - - Emits the create new array expression. - - The generation context. - The elementType of the array element. - The length of the array. - The generated code construct. - - - - Emits the create new array expression. - - The generation context. - The elementType of the array element. - The length of the array. - The initial elements of the array. - The generated code construct. - - - - Emits the get array element expression. - - The generation context. - The array to be gotten. - The index of the array element to be gotten. - The generated code construct. - - - - Emits the set array element statement. - - The generation context. - The array to be set. - The index of the array element to be set. - The value to be set. - The generated code construct. - - - - Emits the conditional expression (cond?then:else). - - The generation context. - The expression which represents conditional. - The expression which is used when condition is true. - The expression which is used when condition is false. - The conditional expression. - - - - Emits the conditional expression (cond?then:else) which has short circuit and expression. - - The generation context. - The expression which represents short circuit and expression. - The expression which is used when condition is true. - The expression which is used when condition is false. - The conditional expression. - - - - Emits the return statement - - The generation context. - The expression to be returned. - The return statement. - - - - Emits the try-finally expression. - - The generation context. - The try expression. - The finally statement. - The generated construct which elementType is elementType of . - - - - Emits the for-each loop. - - The generation context. - The traits of the collection. - The collection reference. - The loop body emitter which takes item reference then returns loop body construct. - The for each loop. - - - - Emits the invoke void method. - - The generation context. - The instance for instance method invocation. null for static method. - The method to be invoked. - The arguments to be passed. - - The generated construct. - - - The derived class must emits codes which discard return non-void value. - - - - - Emits the invoke non-void method. - - The generation context. - The instance for instance method invocation. null for static method. - The method to be invoked. - The arguments to be passed. - - The generated construct which represents method call instruction. - Note that returned value remains in context. - - - - - Emits the invoke non-void method. - - The generation context. - The instance for instance method invocation. null for static method. - The method to be invoked. - The arguments to be passed. - - The generated construct which represents method call instruction. - Note that returned value remains in context. - - - - - Emits the invoke non-void delegate. - - The generation context. - The return type of the delegate. - The delegate to be invocation. - The arguments to be passed. - - The generated construct which represents delegate invocation instruction. - Note that returned value remains in context. - - - - - Emits specified body as individual private method and returns delegate for it. - - The generation context. - The name of the private method. - true for static method. - The type of return value. - The delegate to the factory which returns body of the private method. - The parameters of the private method. - - The generated construct which represents delegate creation instruction to call the private method. - Note that returned value remains in context. - - - - - Emits specified body as individual private method and returns its metadata. - - The generation context. - The name of the private method. - true for static method. - The type of return value. - The delegate to the factory which returns body of the private method. - The parameters of the private method. - - The generated metadata of the private method. - - - - - Emits delegate instantiation for specified named private instance or static method. - - The generation context. - The information of the private method. - - The generated construct which represents delegate creation instruction to call the specified private method. - Note that returned value remains in context. - - - - - Emits getting cached delegate for specified named static method. - - The generation context. - The information of the static method. - - The generated construct which represents delegate creation instruction to call the specified method. - Note that returned value remains in context. - - - - - Emits the get member(field or property) value expression. - - The generation context. - The instance which stores instance member value. - The member to be accessed. - The generated construct. - - - - Emits the get property value expression. - - The generation context. - The instance which stores instance member value. - The property to be accessed. - The generated construct. - - - - Emits the get field value expression. - - The generation context. - The instance which stores instance member value. - The field to be accessed. - The generated construct. - - - - Emits the set member(property or field) value statement. - - The generation context. - The instance which stores instance member value. - The member to be accessed. - The value to be stored. - The generated construct. - - This method generates collection.Add(value) constructs for a read-only member. - - - - - Emits the set property value statement. - - The generation context. - The instance which stores instance member value. - The property to be accessed. - The value to be stored. - The generated construct. - - - - Emits the set indexer property statement. - - The generation context. - The instance which stores instance member value. - The type which defines the property. - The name of the property to be accessed. - The key to be stored. - The value to be stored. - The generated construct. - - - - Emits the set field value statement. - - The generation context. - The instance which stores instance member value. - The field to be accessed. - The value to be stored. - The generated construct. - - - - Emits the set field value statement. - - The generation context. - The instance which stores instance member value. - The nested type definition of the instance which stores instance member value. - The name of the field to be accessed. - The value to be stored. - The generated construct. - - - - Emits the pack item statements. - - The generation context. - The packer. - Type of the item. - The nil implication of the member. - Name of the member. - The item to be packed. - The metadata of packing member. null for non-object member (collection or tuple items). - The schema for collection items. null for non-collection items and non-schema items. - true for async. - The generated code construct. - - - - Emits the pack item expression. - - The generation context. - The packer. - Type of the item. - The item to be packed. - The metadata of packing member. null for non-object member (collection or tuple items). - The schema for collection items. null for non-collection items and non-schema items. - true for async. - The generated code construct. - - - - Emits the append collection item. - - The code generation context. - The read only collection member metadata. null for collection item. - The traits of the collection. - The collection to be appended. - The unpacked item. - - - - - - - Emits the invariant with . - - The generation context. - The format string literal. - The arguments to be used. - The generated construct. - - - - Emits the get serializer expression. - - The generation context. - Type of the target of the serializer. - The metadata of the packing/unpacking member. - The schema for collection items. null for non-collection items and non-schema items. - The generated code construct. - - The serializer reference methodology is implication specific. - - - - - Retrieves a default constructor of the specified elementType. - - The target elementType. - A default constructor of the . - - - - Determines the collection constructor arguments. - - The context. - The constructor. - - An array of constructs representing constructor arguments. - - - The has unsupported signature. - - - - - Gets the construt for constructor argument. - - The context. - The parameter of the constructor parameter. - The construt for constructor argument. - - - - Emits the construct to get equality comparer via . - - The context. - - The construct to get equality comparer via . - - - - - Emits construction sequence. - - The context. - The local variable which the schema to be stored. - The which contains emitting data. - - Constructs to emit construct a copy of . - - - - - Gets the type of the serialization target. - - - The type of the serialization target. - - - - - Gets the cache of . - - - The cache of . - - - - - Gets the base class of the generating serializer. - - - The base class of the generating serializer. - - - - - Initializes a new instance of the class. - - The type of serialization target. - The collection traits of the serialization target. - - - - Builds the serializer and returns its new instance. - - The context information. - The substitution type if is abstract type. null when is not abstract type. - The schema which contains schema for collection items, dictionary keys, or tuple items. This value may be null. - - Newly created serializer object. - This value will not be null. - - - - - Creates the code generation context for serializer instance creation. - - The serialization context. - - The code generation context for serializer instance creation. - This value will not be null. - - - - - Builds the serializer and returns its new instance. - - The context information. This value will not be null. - The substitution type if is abstract type. null when is not abstract type. - The schema which contains schema for collection items, dictionary keys, or tuple items. This value may be null. - The parsed serialization target information. - - Newly created serializer object. - This value will not be null. - - - - - Creates the serializer type and returns its constructor. - - The code generation context. - The parsed serialization target information. - The polymorphism schema of this. - - which refers newly created constructor. - This value will not be null. - - - - - Creates the enum serializer type and returns its constructor. - - The code generation context. - - which refers newly created constructor. - This value will not be null. - - - - - Builds the serializer code using specified code generation context. - - - The which holds configuration and stores generated code constructs. - - The substitution type if is abstract type. null when is not abstract type. - The schema which contains schema for collection items, dictionary keys, or tuple items. This value must not be null. - - is null. - - - This class does not support code generation. - - - - - In derived class, builds the serializer code using specified code generation context. - - - The which holds configuration and stores generated code constructs. - This value will not be null. - - The substitution type if is abstract type. null when is not abstract type. - The schema which contains schema for collection items, dictionary keys, or tuple items. This value must not be null. - - This class does not support code generation. - - - - - Represents dictionary key to remember fields which store dependent serializer instance. - - - - - Type of serializing/deserializing type. - - - - - Enum serialization method for specific member. - - - - - DateTime conversion method for specific member. - - - - - for specific member. null for non-polymorphic member. - - - - - Comparable . - - - must use to distinct between shared serializer and non-sharable serializer because of its polymorphism. - - - - - Defines common interfaces and features for context objects for serializer generation. - - The contextType of the code construct for serializer builder. - - - - Gets the code construct which represents 'context' parameter of generated methods. - - - The code construct which represents 'context' parameter of generated methods. - Its type is , and it holds dependent serializers. - This value will not be null. - - - - - Gets the serialization context which holds various serialization configuration. - - - The serialization context. This value will not be null. - - - - - Gets the code construct which represents the argument for the packer. - - - The code construct which represents the argument for the packer. - This value will not be null. - - - - - Gets the code construct which represents the argument for the packing target object tree root. - - - The code construct which represents the argument for the packing target object tree root. - This value will not be null. - - - - - Gets the code construct which represents the argument for the single argument for null checking. - - - The code construct which represents the argument for the single argument for null checking. - This value will not be null. - - - - - Gets the code construct which represents the argument for the unpacker. - - - The code construct which represents the argument for the unpacker. - This value will not be null. - - - - - Gets the code construct which represents the argument for the collection which will hold unpacked items. - - - The code construct which represents the argument for the collection which will hold unpacked items. - This value will not be null. - - - - - Gets the code construct which represents the argument for the collection which will be added new unpacked item. - - - The code construct which represents the argument for the collection which will be added new unpacked item. - This value will not be null. - - - - - Gets the code construct which represents the argument for the item to be added to the collection. - - - The code construct which represents the argument for the item to be added to the collection. - This value will not be null. - - - - - Gets the code construct which represents the argument for the key to be added to the dictionary. - - - The code construct which represents the argument for the key to be added to the dictionary. - This value will not be null. - - - - - Gets the code construct which represents the argument for the value to be added to the dictionary. - - - The code construct which represents the argument for the key to be added to the dictionary. - This value will not be null. - - - - - Gets the code construct which represents the argument for the initial capacity of the new collection. - - - The code construct which represents the argument for the initial capacity of the new collection. - This value will not be null. - - - - - Gets the code construct which represents the unpacking context for unpacking operations. - - - The code construct which represents the the unpacking context for unpacking operations. - This value is initialized in . - - - - - Gets the code construct which represents the unpacking context for unpacking operations. - - - The code construct which represents the the unpacking context for unpacking operations. - This value is initialized in . - - - - - Gets the code construct which represents the unpacking context for CreateObjectFromContext method. - - - The code construct which represents the the unpacking context for CreateObjectFromContext method. - This value is initialized in . - - - - - Gets the code construct which represents the index of unpacking item in the source array or map. - - - The code construct which represents the index of unpacking item in the source array or map. - This value will not be null. - - - - - Gets the code construct which represents the count of unpacking items in the source array or map. - - - The code construct which represents the count of unpacking items in the source array or map. - This value will not be null. - - - - - Gets the configured nil-implication for collection items. - - - The configured nil-implication for collection items. - - - - - Gets the configured nil-implication for dictionary keys. - - - The configured nil-implication for dictionary keys. - - - - - Gets the configured nil-implication for tuple items. - - - The configured nil-implication for tuple items. - - - - - Gets the declared method. - - The name of the method. - - The . This value will not be null. - - The specified method has not been declared yet. - - - - Gets the declared method. - - The name of the method. - - The . This value will be null when the specified method is not declared. - - The specified method has not been declared yet. - - - - Determines whether specified named private method is already declared or not. - - The name of the method. - true, if specified named method is already declared; fale, otherwise. - - - - Gets the declared field. - - The name of the field. - - The . This value will not be null. - - The specified field has not been declared yet. - - - - Gets the type of the unpacking context. - - - The type of the unpacking context. This value is null until called after last . - - - - - Gets or sets a value indicating whether an UnpackTo method call is emitted or not. - - - true if an UnpackTo method call is emitted; otherwise, false. - - - - - Initializes a new instance of the class. - - The serialization context. - - - - Resets internal states for specified target type. - - Type of the serialization target. - Type of base class of the target. - - - - Resets internal states for specified target type. - - Type of the serialization target. - Type of base class of the target. - - - - Gets a unique name of a local variable. - - The prefix of the variable. - A unique name of a local variable. - - - - Begins implementing overriding method. - - The name of the method. - - - - Ends implementing overriding method. - - The name of the method. - The construct which represents whole method body. - - The method definition of the overridden method. - - - - - Ends implementing overriding method. - - The name of the method. - The construct which represents whole method body. - - The method definition of the overridden method. - - - - - Begins implementing private method. - - The name of the method. - true for static method. - The type of the method return value. - The name and type pairs of the method parameters. - - - - Ends current implementing private method. - - The name of the method. - The construct which represents whole method body. - - The method definition of the private method. - - - - - Ends current implementing private method. - - The name of the method. - The construct which represents whole method body. - - The method definition of the private method. - - - - - Declares new private field. - - The name. - The type. - - - - - Declares new private field. - - The name. - The type. - - - - - Defines the unpacking context type. - - The fields must be declared. - - The type definition of the unpacking context. - Note that this type will be existing property bag or generated private type. - - - The constructor of the context. - - - - - Defines the unpacking context type. - - The fields must be declared. - - The type definition of the unpacking context. - Note that this type will be existing property bag or generated private type. - - - The constructor of the context. - - The typed parameter for unpacking operations. - The typed parameter for unpacking operations. - The typed parameter for CreateObjectFromContext method. - - - - Defines the unpacking context type with result object type. - - The unpacking context type. - - - - Defines the unpacking context type with result object type. - - - The type definition of the unpacking context. - Note that this type will be existing property bag or generated private type. - - The typed parameter for unpacking operations. - The typed parameter for unpacking operations. - The typed parameter for CreateObjectFromContext method. - - - - Defines the unpacked item parameter in set value methods. - - Type of the value. - The parameter construct. - - - - Represents type which may not have built metadata. - - - - - Gets the current . - - - The current . - - - - - Gets a unique name of a local variable. - - The prefix of the variable. - A unique name of a local variable. - - - - Gets a value indicating whether the generated serializers will be internal to MsgPack library itself. - - - true if the generated serializers are internal to MsgPack library itself; otherwise, false. - - - When you use MsgPack in Unity3D, you can import the library in source code form to your assets. - And, you may also import generated serializers together, then the generated serializers and MsgPack library will be same assembly ultimately. - It causes compilation error because some of overriding members have accessbility FamilyOrAssembly(protected internal in C#), - so the generated source code must have the accessibility when and only when they will be same assembly as MsgPack library itself. - - - - - Gets or sets a value indicating whether conditional expression is used, that is, helper method is required or not. - - - true if conditional expression is used; otherwise, false. - - - - - Resets internal states for new type. - - Type of the target. - Type of base class of the target. - - - - Generates codes for this context. - - A collection which correspond to genereated codes. - - - - Creates the for on-the-fly code generation for execution. - - - The newly created for on-the-fly code generation for execution. - - - - - Code DOM based implementation of . - This type supports pre-generation. - - - - - Provides common implementation of - for collection types which implement or IReadOnlyCollection{T}. - - The type of the collection. - The type of the item of collection. - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Serializes specified object with specified . - - which packs values in . This value will not be null. - Object to be serialized. - - is not serializable etc. - - - - - When overridden in derived class, returns count of the collection. - - A collection. This value will not be null. - The count of the . - - - - Deserializes object with specified . - - which unpacks values of resulting object tree. This value will not be null. - Deserialized object. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - is abstract type. - - - This method invokes , and then fill deserialized items to resultong collection. - - - - - Provides common implementation of - for collection types which implement . - - The type of the collection. - The type of the item of collection. - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Returns count of the collection. - - A collection. This value will not be null. - The count of the . - - - - Adds the deserialized item to the collection on specific manner - to implement . - - The collection to be added. - The item to be added. - - - - Provides common features for generic dictionary serializers. - - The type of the dictionary. - The type of the key of dictionary. - The type of the value of dictionary. - - This class provides framework to implement variable collection serializer, and this type seals some virtual members to maximize future backward compatibility. - If you cannot use this class, you can implement your own serializer which inherits and implements . - - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Serializes specified object with specified . - - which packs values in . This value will not be null. - Object to be serialized. - - is not serializable etc. - - - - - When overridden in derived class, returns count of the dictionary. - - A collection. This value will not be null. - The count of the . - - - - Deserializes object with specified . - - which unpacks values of resulting object tree. This value will not be null. - Deserialized object. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - is abstract type. - - - This method invokes , and then fill deserialized items to resultong collection. - - - - - Creates a new collection instance with specified initial capacity. - - - The initial capacy of creating collection. - Note that this parameter may 0 for non-empty collection. - - - New collection instance. This value will not be null. - - - An author of could implement unpacker for non-MessagePack format, - so implementer of this interface should not rely on that reflects actual items count. - For example, JSON unpacker cannot supply collection items count efficiently. - - - - - - Deserializes collection items with specified and stores them to . - - which unpacks values of resulting object tree. This value will not be null. - Collection that the items to be stored. This value will not be null. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - is not collection. - - - - - When implemented by derive class, - adds the deserialized item to the collection on specific manner - to implement . - - The dictionary to be added. - The key to be added. - The value to be added. - - This implementation always throws it. - - - - - Provides basic features for generic serializers. - - The type of the dictionary. - The type of the key of dictionary. - The type of the value of dictionary. - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Returns count of the dictionary. - - A collection. This value will not be null. - The count of the . - - - - Adds the deserialized item to the collection on specific manner - to implement . - - The dictionary to be added. - The key to be added. - The value to be added. - - This implementation always throws it. - - - - - Provides basic features for non-dictionary generic collection serializers. - - The type of the collection. - The type of the item of the collection. - - This class provides framework to implement variable collection serializer, and this type seals some virtual members to maximize future backward compatibility. - If you cannot use this class, you can implement your own serializer which inherits and implements . - - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Creates a new collection instance with specified initial capacity. - - - The initial capacy of creating collection. - Note that this parameter may 0 for non-empty collection. - - - New collection instance. This value will not be null. - - - An author of could implement unpacker for non-MessagePack format, - so implementer of this interface should not rely on that reflects actual items count. - For example, JSON unpacker cannot supply collection items count efficiently. - - - - - - Deserializes collection items with specified and stores them to . - - which unpacks values of resulting object tree. This value will not be null. - Collection that the items to be stored. This value will not be null. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - is not collection. - - - - - Deserializes collection items with specified and stores them to . - - The which unpacks values of resulting object tree. This value will not be null. - The collection that the items to be stored. This value will not be null. - The count of items of the collection in the msgpack stream. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - - - When implemented by derive class, - adds the deserialized item to the collection on specific manner - to implement . - - The collection to be added. - The item to be added. - - This implementation always throws it. - - - - - Provides common implementation of - for collection types which do not implement . - - The type of the collection. - The type of the item of collection. - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Serializes specified object with specified . - - which packs values in . This value will not be null. - Object to be serialized. - - is not serializable etc. - - - - - Defines common interface for serializers which can genereate new empty instance. - - - All custom manually implemented or automatically generated serializers which treat collection (that is, they return objects implementing except few exceptions like ). - - - - - Creates a new collection instance with specified initial capacity. - - - The initial capacy of creating collection. - Note that this parameter may 0 for non-empty collection. - - New collection instance. This value will not be null. - - An author of could implement unpacker for non-MessagePack format, - so implementer of this interface should not rely on that reflects actual items count. - For example, JSON unpacker cannot supply collection items count efficiently. - - - - - Provides common implementation of - for collection types which implement . - - The type of the collection. - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Serializes specified object with specified . - - which packs values in . This value will not be null. - Object to be serialized. - - is not serializable etc. - - - - - Provides basic features for non-generic dictionary serializers. - - The type of the dictionary. - - This class provides framework to implement variable collection serializer, and this type seals some virtual members to maximize future backward compatibility. - If you cannot use this class, you can implement your own serializer which inherits and implements . - - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Serializes specified object with specified . - - which packs values in . This value will not be null. - Object to be serialized. - - is not serializable etc. - - - - - Deserializes object with specified . - - which unpacks values of resulting object tree. This value will not be null. - Deserialized object. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - is abstract type. - - - This method invokes , and then fill deserialized items to resultong collection. - - - - - Creates a new collection instance with specified initial capacity. - - - The initial capacy of creating collection. - Note that this parameter may 0 for non-empty collection. - - - New collection instance. This value will not be null. - - - An author of could implement unpacker for non-MessagePack format, - so implementer of this interface should not rely on that reflects actual items count. - For example, JSON unpacker cannot supply collection items count efficiently. - - - - - - Deserializes collection items with specified and stores them to . - - which unpacks values of resulting object tree. This value will not be null. - Collection that the items to be stored. This value will not be null. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - is not collection. - - - - - Provides basic features for non-dictionary non-generic collection serializers. - - The type of the collection. - - This class provides framework to implement variable collection serializer, and this type seals some virtual members to maximize future backward compatibility. - If you cannot use this class, you can implement your own serializer which inherits and implements . - - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Creates a new collection instance with specified initial capacity. - - - The initial capacy of creating collection. - Note that this parameter may 0 for non-empty collection. - - - New collection instance. This value will not be null. - - - An author of could implement unpacker for non-MessagePack format, - so implementer of this interface should not rely on that reflects actual items count. - For example, JSON unpacker cannot supply collection items count efficiently. - - - - - - Deserializes collection items with specified and stores them to . - - The which unpacks values of resulting object tree. This value will not be null. - The collection that the items to be stored. This value will not be null. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - is not collection. - - - - - Deserializes collection items with specified and stores them to . - - The which unpacks values of resulting object tree. This value will not be null. - The collection that the items to be stored. This value will not be null. - The count of items of the collection in the msgpack stream. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - - - When implemented by derive class, - adds the deserialized item to the collection on specific manner - to implement . - - The collection to be added. - The item to be added. - - This implementation always throws it. - - - - - Provides common implementation of - for collection types which implement . - - The type of the collection. - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Serializes specified object with specified . - - which packs values in . This value will not be null. - Object to be serialized. - - is not serializable etc. - - - - - Provides common implementation of - for collection types which implement . - - The type of the collection. - - - - Initializes a new instance of the class. - - A which owns this serializer. - - The schema for collection itself or its items for the member this instance will be used to. - null will be considered as . - - - is null. - - - - - Deserializes object with specified . - - which unpacks values of resulting object tree. This value will not be null. - Deserialized object. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - is abstract type. - - - This method invokes , and then fill deserialized items to resultong collection. - - - - - Adds the deserialized item to the collection on specific manner - to implement . - - The collection to be added. - The item to be added. - - - - Represents member's data contract. - - - - - Gets the name of the member. - - - The name of the member. - - - - - Gets the ID of the member. - - - The ID of the member. Default is -1. - - - - - Gets the nil implication. - - - The nil implication. - - - - - Initializes a new instance of the struct. - - The target member. - - - - Initializes a new instance of the struct. - - The target member. - The name of member. - The implication of the nil value for the member. - The ID of the member. This value cannot be negative and must be unique in the type. - - - - Initializes a new instance of the struct from . - - The target member. - The MessagePack member attribute. - - - - Defines behavior of built-in serializers to conversion of value. - - - - - Uses context, that is, Gregorian 0000-01-01 based, 100 nano seconds resolution. This value also preserves . - - - As of 0.6, this value has been become default. This option prevents accidental data loss. - - - - - Uses Unix epoc context, that is, Gregirian 1970-01-01 based, milliseconds resolution. - - - Many binding such as Java uses this resolution, so this option gives maximom interoperability. - - - - - Defines behavior of built-in serializers to conversion of value for specific member. - - - - - Uses systems default value. - - - The systems default . - - - - - Uses context, that is, Gregorian 0000-01-01 based, 100 nano seconds resolution. This value also preserves . - - - As of 0.6, this value has been become default. This option prevents accidental data loss. - - - - - Uses Unix epoc context, that is, Gregirian 1970-01-01 based, milliseconds resolution. - - - Many binding such as Java uses this resolution, so this option gives maximom interoperability. - - - - - This is intened to MsgPack for CLI internal use. Do not use this type from application directly. - Helper methods for date time message pack serializer. - - - - - Determines for the target. - - Context information. - The method argued by the member. - Determined for the target. - - is null. - - - - - Repository of known concrete collection type for abstract collection type. - - - - - Gets the default type for the collection. - - Type of the abstract collection. - - Type of default concrete collection. - If concrete collection type of , then returns null. - - - is null. - - - By default, following types are registered: - - - Abstract Collection Type - Concrete Default Collection Type - - - - - - - - - - - ISet{T} (.NET 4 or lator) - - - - - - - - - - - - - of . - - - - of . - - - - of . - - - - - - - - - - - Registers the default type of the collection. - - Type of the abstract collection. - Default concrete type of the . - - is null. - Or is null. - - - is not collection type. - Or is abstract class or interface. - Or is open generic type but is closed generic type. - Or is closed generic type but is open generic type. - Or does not have same arity for . - Or is not assignable to - or the constructed type from will not be assignable to the constructed type from . - - - If you want to overwrite default type for collection interfaces, you can use this method. - Note that this method only supports collection interface, that is subtype of the interface. - - If you register invalid type for , then runtime exception will be occurred. - For example, you register of and pair, but it will cause runtime error. - - - - - - - Unregisters the default type of the collection. - - Type of the abstract collection. - - true if default collection type is removed successfully; - otherwise, false. - - - - - Implements non-generic or common portion of abstract collection serializers. - - - - - Provides runtime selection ability for serialization. - - - - - serializer using Unix Epoc or native representation. - - - - - Provides runtime selection ability for serialization. - - - - - Provides runtime selection ability for serialization. - - - - - Defines serializer factory for well known structured types. - - - - - Determines whether the specified type is supported from this class. - - The type to be determined. - The known of the . - true to prefer reflection based collection serializers instead of dyhnamic generated serializers. - true when the is supported; otherwise, false. - - - - Defines non-generic factory method for built-in serializers which require generic type argument. - - - - - Defines non-generic factory method for 'universal' serializers which use general collection features. - - - - - Invokes in deserializaton manner. - - . - A deserialized value. - is not expected type. - - - - serializer using native representation. - - - - - serializer using native representation. - - - - - Provides default implementation for . - - The type of keys of the . - The type of values of the . - - - - Provides default implementation for . - - The type of items of the . - - - - serializer using Unix Epoc representation. - - - - - serializer using native representation. - - - - - Defines built-in, out-of-box handlers for . - - - - - Gets the handler which transforms upper camel casing (PascalCasing) key to lower camel casing (camelCasing) key. - - - The handler which transforms upper camel casing (PascalCasing) key to lower camel casing (camelCasing) key. - - - - - Defines dictionary (map) based serialization options. - - - These options do NOT affect serialization of - and . - - - - - Gets or sets a value indicating whether omit key-value entry itself when the value is null. - - - true if key-value entry itself when the value is null; otherwise, false. - The default is false. - - - When the value is false, null value entry is emitted as following (using JSON syntax for easy visualization): -
-            	{ "Foo": null }
-            	
- else, the value is true, null value entry is ommitted as following: -
-            	{}
-            	
-
-
- - - Gets or sets the key name handler which enables dictionary key name customization. - - - The key name handler which enables dictionary key name customization. - The default value is null, which indicates that key name is not transformed. - - - - - - Initializes a new instance of the class. - - - - - Determines emitter strategy. - - - - - Caches serializers for the members (de)serialization. - It is default. - - - - - Uses code DOM code generation to (de)serialization. - It requires a long time but prevents runtime code generation at all. - - - - - Uses reflection to (de)serialization. - It requires additional resources but may work on most environment. - - - - - An for . - - - - - Create new for specified . - - The target type of the serializer. - The collection traits of . - The base class of the serializer. - . - - - - Generates codes for this context. - - A collection which correspond to genereated codes. - - - - A code generation context for . - - - - - Gets or sets the to emit IL for current method. - - - The to emit IL for current method. - - - - - Gets the . - - - The . - - - - - Gets the type of the serializer. - - Type of the serialization target. - Type of the serializer. - - - - Initializes a new instance of the class. - - The serialization context. - Type of the serialization target. - - The factory for to be used. - - - - - An implementation of with . - - - - - Initializes a new instance of the class for instance creation. - - The type of serialization target. - The collection traits of the serialization target. - - - - Represents code construct for s. - - - - - Gets the context type of this construct. - - - The context type of this construct. - This value will not be null, but might be . - - - A context type represents the type of the evaluation context. - - - - - Gets a value indicating whether this instance is terminating. - - - true if this instruction terminates method; otherwise, false. - - - - - Initializes a new instance of the class. - - The type. - - - - Evaluates this construct that is executing this construct as instruction. - - The . - - This construct does not have eval semantics. - - - - - Loads value from the storage represented by this construct. - - The . - - true, if value type value should be pushed its address instead of bits; otherwise, false. - - - This construct does not have load value semantics. - - - - - Stores value to the storage represented by this construct. - - The . - - This construct does not have store value semantics. - - - - - Evaluates this construct as branch instruction. - - The . - The which points the head of 'else' instructions. - - This construct does not have branch semantics. - - - - - Represents IL method generation context. - - - - - Defines common features and interfaces for . - - - - - Get the appropriate for the current configuration. - - - The appropriate for the current configuration. - This value will not be null. - - - - - Get the appropriate for specified options. - - . - - The appropriate for specified options. - This value will not be null. - - - - - Get the singleton instance for can-collect mode. - - - - - Get the singleton instance for can-dump mode. - - - - - Get the singleton instance for fast mode. - - - - - Get the dumpable with specified brandnew assembly builder. - - An assembly builder which will store all generated types. - - The appropriate to generate pre-cimplied serializers. - This value will not be null. - - - - - Creates new which corresponds to the specified . - - The specification of the serializer. - Type of the base class of the serializer. - New which corresponds to the specified . - - - - Creates new which corresponds to the specified . - - The . - The specification of the serializer. - New which corresponds to the specified . - - - - Defines common features for emitters. - - - - - Initializes a new instance of the class. - - The host . - The specification of the serializer. - Type of the base class of the serializer. - Set to true when is debuggable. - - - - Regisgters specified field to the current emitting session. - - The name of the field. - The type of the field. - . - - - - Gets the IL generator to implement specified method override. - - The name of the method. - - The IL generator to implement specified method override. - This value will not be null. - - - - - Gets the IL generator to implement specified private instance method. - - The name of the method. - true for static method. - The type of the method return value. - The types of the method parameters. - - The IL generator to implement specified method override. - This value will not be null. - - - - - Initializes a new instance of the class for enum. - - A . - The host . - The specification of the serializer. - Set to true when is debuggable. - - - - Creates the serializer type built now and returns its new instance. - - The to holds serializers. - The which determines serialization form of the enums. - - Newly built instance. - This value will not be null. - - - - - Creates instance constructor delegates. - - A delegate for serializer constructor. - - - - Regisgters of target type usage to the current emitting session. - - The type of the member to be serialized/deserialized. - The enum serialization method of the member to be serialized/deserialized. - The date time conversion method of the member to be serialized/deserialized. - The schema for polymorphism support. - The delegate to provide constructs to emit schema regeneration codes. - . - - - - Regisgters usage to the current emitting session. - - The to be registered. - - to emit serializer retrieval instructions. - The 1st argument should be to emit instructions. - The 2nd argument should be argument index of the serializer holder, normally 0 (this pointer). - This value will not be null. - - - - - Regisgters usage to the current emitting session. - - The to be registered. - - to emit serializer retrieval instructions. - The 1st argument should be to emit instructions. - The 2nd argument should be argument index of the serializer holder, normally 0 (this pointer). - This value will not be null. - - - - - Creates the serializer type built now and returns its new instance. - - The to holds serializers. - The builder which implements actions initialization emit. - The information of the target. - The for this instance. - - Newly built instance. - This value will not be null. - - - - - Creates the serializer type built now and returns its constructor. - - The context. - The builder which implements actions initialization emit. - The information of the target - - Newly built type constructor. - This value will not be null. - - - - - Represents individual enum typed member serialization method. - - - - - Respects setting in enum type itself or system default. - - - - - Enums are serialized with their name. It is more torelant to versioning but less efficient. - - - - - Enums are serialized with their underlying value. It is more efficient but less torelant to versioning. - - - - - This is intened to MsgPack for CLI internal use. Do not use this type from application directly. - Helper methods for enum message pack serializer. - - - - - Determines for the target. - - Context information. - The target enum type. - The method argued by the member. - Determined for the target. - - is null. - Or is null. - - - - - Implements for enums. - This class accepts as a provider parameter. - - - - - Initializes a new instance of the class. - - A type of the enum. - The serializer implements . - - - - Gets a serializer instance for specified parameter. - - A serialization context which holds global settings. - A provider specific parameter. - - A serializer object for specified parameter. - - - - - Defines basic features for enum object serializers. - - The type of enum type itself. - - This class supports auto-detect on deserialization. So the constructor parameter only affects serialization behavior. - - - - - Initializes a new instance of the class. - - A which owns this serializer. - The which determines serialization form of the enums. - TEnum is not enum type. - - - - Serializes specified object with specified . - - which packs values in . This value will not be null. - Object to be serialized. - - - - Packs enum value as its underlying value. - - The packer. - The enum value to be packed. - - - - Deserializes object with specified . - - which unpacks values of resulting object tree. This value will not be null. - Deserialized object. - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - Failed to deserialize object due to invalid unpacker state, stream content, or so. - - - - - Unpacks enum value from underlying integral value. - - The message pack object which represents some integral value. - - An enum value. - - The type of integral value is not compatible with underlying type of the enum. - - - - Represents enum type serialization method. - - - - - Enums are serialized with their name. It is more torelant to versioning but less efficient. - - - - - Enums are serialized with their underlying value. It is more efficient but less torelant to versioning. - - - - - Implements mapping table between known ext type codes and names. - - - Well-known (pre-defined) ext type names are defined in , and their default mapped codes are found in . - - - - - - Gets a mapped byte to the specified ext type name. - - The name of the ext type. - - The byte code for specified ext type in the current context. - - is null. - is empty. - is not registered as known ext type name. - - - - Adds the known ext type mapping. - - The name of the ext type. - The ext type code to be mapped. - - true if AND were not registered and then newly registered; false, otherwise. - - is null. - is empty. - is greater than 0x7F. - - - - Removes the mapping with specified name. - - The name of the ext type. - - true if was registered and has been removed successfully; false, otherwise. - - is null. - is empty. - - - - Removes the mapping with specified code. - - The type code of the ext type. - - true if was registered and has been removed successfully; false, otherwise. - - is greater than 0x7F. - - - - Clears all mappings. - - - - - Returns an enumerator that iterates through the collection. - - - A that can be used to iterate through the collection. - - - This method causes internal collection copying, so this makes O(n) time. - - - - - Represents customizable enum serializer. - - - - - Gets a copy with specified method. - - Enum serialization method. - This instance or copied instance corresponds to the specified serialization method. - - - - Utilities related to member/type ID. - - - - - Defines non-generic message pack serializer interface. - - - - - Serialize specified object with specified . - - which packs values in . - Object to be serialized. - - is null. - - - is not compatible for this serializer. - - - Failed to serialize object. - - - The type of is not serializable even if it can be deserialized. - - - - - - Deserialize object with specified . - - which unpacks values of resulting object tree. - The deserialized object. - - is null. - - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - The type of deserializing is not serializable even if it can be serialized. - - - - - - Deserialize collection items with specified and stores them to . - - which unpacks values of resulting object tree. - Collection that the items to be stored. - - is null. - Or is null. - - - is not compatible for this serializer. - - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - The type of deserializing is not mutable collection. - - - - - - Defines non-generic message pack serializer interface for byte array which contains a single object. - - - - - Serialize specified object to the array of . - - Object to be serialized. - An array of which stores serialized value. - - Failed to serialize object. - - - The type of is not serializable even if it can be deserialized. - - - - - - Deserialize a single object from the array of which contains a serialized object. - - An array of serialized value to be stored. - The deserialized object. - - is null. - - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - The type of deserializing is not serializable even if it can be serialized. - - - - - This method assumes that contains single serialized object dedicatedly, - so this method does not return any information related to actual consumed bytes. - - - This method is a counter part of . - - - - - - Defines common interface for parameter of method and its template methods. - - - - - Defines common interface for parameter of method and its template methods. - - - - - Defines internal common interface for serializer generator configuration objects. - - - - - Gets or sets the output directory for generating artifacts. - - - The output directory for generating artifacts. - Specifying null causes reset to the default location. - - Specified value is not valid for directory path. - - - - Gets or sets the serialization method to pack object. - - - A value of . - - Specified value is not valid . - - - - Gets or sets the default enum serialization method for generating enum type serializers. - - - A value of . - - Specified value is not valid . - - - - Gets or sets a value indicating whether recursively generates dependent types which do not have built-in serializer or not. - - - true if recursively generates dependent types which do not have built-in serializer; otherwise, false. - - - - - Gets or sets a value indicating whether prefer reflection based collection serializers instead of dyhnamic generated serializers. - - - true if prefer reflection based collection serializers instead of dyhnamic generated serializers; otherwise, false. - - - - - Gets or sets a value indicating whether creating Nullable of T serializers for value type serializers. - - - true if creates Nullable of T serializers for value type serializers; otherwise, false. - - - - - Gets the compatibility options. - - - The which stores compatibility options. This value will not be null. - - - - - Gets or sets a value indicating whether generated serializers will override async methods or not. - - - true if generated serializers will override async methods; otherwise, false. - Default is true. - - - - - Validates this instance state. - - This object is not in valid state. - - - - Lazy initialized serializer which delegates actual work for the other serializer implementation. - - - The type of target type. - - - This serializer is intended to support self-composit structure like directories or XML nodes. - - - - - Initializes a new instance of the class. - - - The serialization context to support lazy retrieval. - - A provider parameter to be passed in future. - - - - Marks that this or typed member has special characteristics on MessagePack serialization. - - - If this attributes is used for incompatible typed members, this attribute will be ignored. - - - - - Gets or sets the default serialization method for this enum typed member. - - - The default serialization method for this enum typed member. - Note that the method for the enum type will be overrided with this. - - - - - Initializes a new instance of the class. - - - - - Marks this constructor used as deserialization constructor. - - - - This attribute only used once per type. - If there are multiple constructors marked with this attribute in the type, will be onccured in serializer generation. - - - Marking with this attribute is not required to generate serializer which uses constructor in deserialization, but this attribute is available in following purposes: - - - - Indicating force constructor deserialization instead of member deserialization. - The serializer generation prefer member (that is using property setters and fields) deserialization as possible. - You can indicate to forcibly use constructor even when there are any setters/writable fields. - - - If you do not specify this attribute in this case, member deserialization strategy will be used. - - - - - Clarify the constructor which wil be used in deserialization when there are multiple constructors declared in the type. - Although the serializer generator avoids default constructor and non-public constructors, it cannot resolve target constructor when there are multiple candidates (that is, public, parameterized constructors). - - - If you do not specify this attribute in this case, serializer generator throws . - - - - - - - - - Initializes a new instance of the class. - - - - - Marks that this enum type has special characteristics on MessagePack serialization. - - - Enum types which are not marked with this attribute will be serialized as value. - - - - - Gets or sets the default serialization method for this enum type. - - - The default serialization method for this enum type. - Note that the method for individual enum typed members will be overrided with . - - - - - Initializes a new instance of the class. - - - - - Marks that this enum typed member has special characteristics on MessagePack serialization. - - - If this attributes is used for non-enum typed members, this attribute will be ignored. - - - - - Gets or sets the default serialization method for this enum typed member. - - - The default serialization method for this enum typed member. - Note that the method for the enum type will be overrided with this. - - - - - Initializes a new instance of the class. - - - - - Marks the field or the property should not be serialized/deserialized with MessagePack for CLI serialization mechanism. - - - - - Initializes a new instance of the class. - - - - - Marks that the runtime type of this member should be encoded with closed type codes for polymorphism. - - - - When you apply this attribute to a member, the member - will be serialized as 2 element array as [ <type-code>, <actual-value (array or map)>] format - where the type-code is utf-8 encoded string representing type in your application (system) context. - When you interop with other launages, the deserializer will be able to deserialize object which is actual type when serialized with interoperability. - - You must use one-to-one relationship between type-code and the type. - - - - - - Gets a type code to be bound. - - - A type code to be bound. - - - - - Gets the type of the binding for . - - - The binding for . - - - - - Initializes a new instance of the class. - - A string type code to be bound. - The binding for . - - - - Marks that the runtime type of items/values of this collection/dictionary should be encoded with closed type codes for polymorphism. - - - - When you apply this attribute to a member, the items/values of the collection/dictionary - will be serialized as 2 element array as [ <type-code>, <actual-value (array or map)>] format - where the type-code is utf-8 encoded string representing type in your application (system) context. - When you interop with other launages, the deserializer will be able to deserialize object which is actual type when serialized with interoperability. - - You must use one-to-one relationship between type-code and the type. - - - - - - Gets a type code to be bound. - - - A type code to be bound. - - - - - Gets the type of the binding for . - - - The binding for . - - - - - Initializes a new instance of the class. - - A string type code to be bound. - The binding for . - - - - Marks that the runtime type of keys of this dictionary should be encoded with closed type codes for polymorphism. - - - - When you apply this attribute to a member, the keys of the dictionary - will be serialized as 2 element array as [ <type-code>, <actual-value (array or map)>] format - where the type-code is utf-8 encoded string representing type in your application (system) context. - When you interop with other launages, the deserializer will be able to deserialize object which is actual type when serialized with interoperability. - - You must use one-to-one relationship between type-code and the type. - - - - - - Gets a type code to be bound. - - - A type code to be bound. - - - - - Gets the type of the binding for . - - - The binding for . - - - - - Initializes a new instance of the class. - - A string type code to be bound. - The binding for . - - - - Marks that the runtime type of specified item of the tuple should be encoded with closed type codes for polymorphism. - - - - When you apply this attribute to a member, the item of tuple, - will be serialized as 2 element array as [ <type-code>, <actual-value (array or map)>] format - where the type-code is utf-8 encoded string representing type in your application (system) context. - When you interop with other launages, the deserializer will be able to deserialize object which is actual type when serialized with interoperability. - - You must use one-to-one relationship between type-code and the type. - - - - - - Gets a type code to be bound. - - - A type code to be bound. - - - - - Gets the type of the binding for . - - - The binding for . - - - - - Gets the target tuple item's number. - - - The 1-based target tuple item's number. - - - - If this value is not valid for the tuple, this whole instance should be ignored. - - - If same values are specified multiply, the result is undefined. - - - - - - Initializes a new instance of the class. - - The 1-based target item number of the tuple. The attribute which has invalid value should be ignored. - A string type code to be bound. - The binding for . - - - - Marks a field or a property to be serialized with MessagePack Serializer and defines some required informations to serialize. - - - - - Gets the ID of the member. - - - The ID of the member. - - - - - Gets or sets the name of this member. - - - The name which will be used in map key on serialized MessagePack stream. - - - - - Gets or sets the implication of the nil value. - - - The implication of the nil value. - Default value is . - - - - - Initializes a new instance of the class. - - - The ID of the member. This value cannot be negative and must be unique in the type. - - - - - Marks that the runtime type of this member should be encoded with type information for polymorphism. - - - - When you apply this attribute to a member, the member will be serialized with .NET specific type information, - so deserializer will be able to deserialize object which is actual type when serialized instead of interoperability. - Because non-.NET enviroments (Java, Ruby, Go, etc.) cannot interpret .NET native type identifier, - you should not use this attribute when the serialized stream will be possible to be used from non-.NET environment. - The typed object will be encoded as 2 elements array as follows, so your deserializer can skip type information as needed: - [ <type-info>, <actual-value (array or map)>] - In this point, type-info will be encoded as compressed assembly qualified name as follows: - [ <compressed type full name>, <assembly simple name>, <version binary>, <culture string>, <public key token binary>] - If the type full name starts with its assembly simple name, then the prefix matched to assembly simple name will be omitted - (as a result, compressed type name starts with dot). - - You should use this attribute CAREFULLY when you deserialize data from outside, because this feature can inject arbitary process in your code through - constructor and some virtual methods if exist. - It is highly recommended avoid using type as member's declaring type, - you should specify your base class which and derived typed are fully controled under your organization instead. - It mitigate chance of potential exploits. - - - - - - Initializes a new instance of the class. - - - - - Marks that the runtime type of items/values of this collection/dictionary should be encoded with type information for polymorphism. - - - - When you apply this attribute to a member, the items/values of the collection/dictionary will be serialized with .NET specific type information, - so deserializer will be able to deserialize object which is actual type when serialized instead of interoperability. - Because non-.NET enviroments (Java, Ruby, Go, etc.) cannot interpret .NET native type identifier, - you should not use this attribute when the serialized stream will be possible to be used from non-.NET environment. - The typed object will be encoded as 2 elements array as follows, so your deserializer can skip type information as needed: - [ <type-info>, <actual-value (array or map)>] - In this point, type-info will be encoded as compressed assembly qualified name as follows: - [ <compressed type full name>, <assembly simple name>, <version binary>, <culture string>, <public key token binary>] - If the type full name starts with its assembly simple name, then the prefix matched to assembly simple name will be omitted - (as a result, compressed type name starts with dot). - - You should use this attribute CAREFULLY when you deserialize data from outside, because this feature can inject arbitary process in your code through - constructor and some virtual methods if exist. - It is highly recommended avoid using type as member's declaring type, - you should specify your base class which and derived typed are fully controled under your organization instead. - It mitigate chance of potential exploits. - - - - - - Initializes a new instance of the class. - - - - - Marks that the runtime type of keys of this dictionary should be encoded with type information for polymorphism. - - - - When you apply this attribute to a member, the keys of the dictionary will be serialized with .NET specific type information, - so deserializer will be able to deserialize object which is actual type when serialized instead of interoperability. - Because non-.NET enviroments (Java, Ruby, Go, etc.) cannot interpret .NET native type identifier, - you should not use this attribute when the serialized stream will be possible to be used from non-.NET environment. - The typed object will be encoded as 2 elements array as follows, so your deserializer can skip type information as needed: - [ <type-info>, <actual-value (array or map)>] - In this point, type-info will be encoded as compressed assembly qualified name as follows: - [ <compressed type full name>, <assembly simple name>, <version binary>, <culture string>, <public key token binary>] - If the type full name starts with its assembly simple name, then the prefix matched to assembly simple name will be omitted - (as a result, compressed type name starts with dot). - - You should use this attribute CAREFULLY when you deserialize data from outside, because this feature can inject arbitary process in your code through - constructor and some virtual methods if exist. - It is highly recommended avoid using type as member's declaring type, - you should specify your base class which and derived typed are fully controled under your organization instead. - It mitigate chance of potential exploits. - - - - - - Initializes a new instance of the class. - - - - - Marks that the runtime type of specified item of the tuple should be encoded with type information for polymorphism. - - - - When you apply this attribute to a member, the item of tuple will be serialized with .NET specific type information, - so deserializer will be able to deserialize object which is actual type when serialized instead of interoperability. - Because non-.NET enviroments (Java, Ruby, Go, etc.) cannot interpret .NET native type identifier, - you should not use this attribute when the serialized stream will be possible to be used from non-.NET environment. - The typed object will be encoded as 2 elements array as follows, so your deserializer can skip type information as needed: - [ <type-info>, <actual-value (array or map)>] - In this point, type-info will be encoded as compressed assembly qualified name as follows: - [ <compressed type full name>, <assembly simple name>, <version binary>, <culture string>, <public key token binary>] - If the type full name starts with its assembly simple name, then the prefix matched to assembly simple name will be omitted - (as a result, compressed type name starts with dot). - - You should use this attribute CAREFULLY when you deserialize data from outside, because this feature can inject arbitary process in your code through - constructor and some virtual methods if exist. - It is highly recommended avoid using type as member's declaring type, - you should specify your base class which and derived typed are fully controled under your organization instead. - It mitigate chance of potential exploits. - - - - - - Gets the target tuple item's number. - - - The 1-based target tuple item's number. - - - - If this value is not valid for the tuple, this whole instance should be ignored. - - - If same values are specified multiply, the result is undefined. - - - - - - Initializes a new instance of the class. - - The 1-based target item number of the tuple. The attribute which has invalid value should be ignored. - - - - Defines non-generic interface of serializers and provides entry points for usage. - - - You cannot derived from this class directly, use instead. - This class is intended to guarantee backward compatibilities of non generic API. - - - - - Gets a which owns this serializer. - - - A which owns this serializer. - - - - - Gets the packer compatibility options for this instance. - - - The packer compatibility options for this instance - - - - - Gets the capability flags for this instance. - - - The capability flags for this instance. - - - - - Initializes a new instance of the class. - - A which owns this serializer. - The for new packer creation. - The capability flags for this instance. - - - - Serialize specified object with specified . - - which packs values in . - Object to be serialized. - - - - - Deserialize object with specified . - - which unpacks values of resulting object tree. - - The deserialized object. - - - - - - Deserialize collection items with specified and stores them to . - - which unpacks values of resulting object tree. - Collection that the items to be stored. - - - - - Serialize specified object to the array of . - - Object to be serialized. - - An array of which stores serialized value. - - - - - - Deserialize a single object from the array of which contains a serialized object. - - An array of serialized value to be stored. - - The deserialized object. - - - - This method assumes that contains single serialized object dedicatedly, - so this method does not return any information related to actual consumed bytes. - - - This method is a counter part of . - - - - - - - Creates new instance with . - - Target type. - - New instance to serialize/deserialize the object tree which the top is . - - - - - Creates new instance with specified . - - Target type. - - to store known/created serializers. - - - New instance to serialize/deserialize the object tree which the top is . - - - is null. - - - - - Gets existing or new instance with default context (). - - Target type. - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - This method simply invokes with for the context. - - - - - Gets existing or new instance with default context (). - - Target type. - A provider specific parameter. See remarks section for details. - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - This method simply invokes with for the context. - - - - - Gets existing or new instance with specified . - - Target type. - - to store known/created serializers. - - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - is null. - - - This method simply invokes with null for the providerParameter. - - - - - Gets existing or new instance with specified . - - Target type. - - to store known/created serializers. - - A provider specific parameter. See remarks section for details. - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - is null. - - - - This method simply invokes , so see the method description for details. - - - Currently, only following provider parameters are supported. - - - Target type - Provider parameter - - - or its descendants. - . The returning instance corresponds to this value for serialization. - - - null is valid value for and it indeicates default behavior of parameter. - - - - - - Creates new instance with . - - Target type. - - New instance to serialize/deserialize the object tree which the top is . - - - is null. - - - To avoid boxing and strongly typed API is prefered, use instead when possible. - - - - - Creates new instance with specified . - - Target type. - - to store known/created serializers. - - - New instance to serialize/deserialize the object tree which the top is . - - - is null. - Or, is null. - - - To avoid boxing and strongly typed API is prefered, use instead when possible. - - - - - Gets existing or new instance with default context (). - - Target type. - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - is null. - - - - This method simply invokes , so see the method description for details. - - - Although is preferred, - this method can be used from non-generic type or methods. - - - - - - Gets existing or new instance with default context (). - - Target type. - A provider specific parameter. See remarks section for details. - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - is null. - - - - This method simply invokes , so see the method description for details. - - - Although is preferred, - this method can be used from non-generic type or methods. - - - - - - Gets existing or new instance with specified . - - Target type. - - to store known/created serializers. - - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - is null. - Or, is null. - - - - This method simply invokes , so see the method description for details. - - - Although is preferred, - this method can be used from non-generic type or methods. - - - - - - Gets existing or new instance with specified . - - Target type. - - to store known/created serializers. - - A provider specific parameter. See remarks section for details. - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - is null. - Or, is null. - - - - This method simply invokes , so see the method description for details. - - - Although is preferred, - this method can be used from non-generic type or methods. - - - - - - Directly deserialize specified MessagePack as tree. - - The stream which contains deserializing data. - A which is root of the deserialized MessagePack object tree. - - is null. - - - This method is convinient wrapper for for . - - You cannot override this method behavior because this method uses private instead of default context which is able to be accessed via . - - - - - - Try to prepare specified type for some AOT(Ahead-Of-Time) compilation environment. - If the type will be used in collection or dictionary, use and/or instead. - - The type to be prepared. Normally, this should be value type. - - - Currently, this method only works in Unity build. - This method does not any work for other environments(and should be removed on JIT/AOT), but exists to simplify the application compilation. - It is recommended to use this method on start up code to reduce probability of some AOT errors. - - - Please note that this method do not ensure for full linkage for AOT. - - - - - - Try to prepare specified types which will be used as dictionary keys and values for some AOT(Ahead-Of-Time) compilation environment. - If the type will be used in collection use instead. - - The key type to be prepared. Normally, this should be value type. - The value type to be prepared. Normally, this should be value type. - - - Currently, this method only works in Unity build. - This method does not any work for other environments(and should be removed on JIT/AOT), but exists to simplify the application compilation. - It is recommended to use this method on start up code to reduce probability of some AOT errors. - - - Please note that this method do not ensure for full linkage for AOT. - - - Currently, this method prepares and also invokes implicitly. - - - - - - Try to prepare specified type which will be used as collection elements for some AOT(Ahead-Of-Time) compilation environment. - If the type will be used in dictionary, use instead. - - The element type to be prepared. Normally, this should be value type. - - - Currently, this method only works in Unity build. - This method does not any work for other environments(and should be removed on JIT/AOT), but exists to simplify the application compilation. - It is recommended to use this method on start up code to reduce probability of some AOT errors. - - - Please note that this method do not ensure for full linkage for AOT. - - - Currently, this method prepares , , and . - In addition, this method also invokes implicitly. - - - - - - Defines convinient extension methods for interfaces. - - - - - Serializes specified object to the with default . - - object. - Destination . - Object to be serialized. - - is null. - Or is null. - - - Failed to serialize . - - - - - Serializes specified object to the . - - object. - Destination . - Object to be serialized. - A which specifies compatibility options. - - is null. - Or is null. - - - Failed to serialize . - - - - - Deserialize object from the . - - object. - Source . - Deserialized object. - - is null. - Or is null. - - - Failed to deserialize from . - - - - - Defines basic features and interfaces for serializer provider which is stored in repository and controlls returning serializer with its own parameter. - - - - - Initializes a new instance of the class. - - - - - Gets a serializer instance for specified parameter. - - A serialization context which holds global settings. - A provider specific parameter. - A serializer object for specified parameter. - - - - Defines base contract for object serialization. - - Target type. - - - This class implements strongly typed serialization and deserialization. - - - When the underlying stream does not contain strongly typed or contains dynamically typed objects, - you should use directly and take advantage of . - - - - - - - - Initializes a new instance of the class with . - - - This method supports backword compatibility with 0.3. - - - - - Initializes a new instance of the class with default context.. - - The for new packer creation. - - This method supports backword compatibility with 0.4. - - - - - Initializes a new instance of the class. - - A which owns this serializer. - is null. - - - - Initializes a new instance of the class with explicitly specified compatibility option. - - A which owns this serializer. - The for new packer creation. - is null. - - This method also supports backword compatibility with 0.4. - - - - - Initializes a new instance of the class. - - A which owns this serializer. - A serializer calability flags represents capabilities of this instance. - is null. - - - - Initializes a new instance of the class with explicitly specified compatibility option. - - A which owns this serializer. - The for new packer creation. - A serializer calability flags represents capabilities of this instance. - is null. - - This method also supports backword compatibility with 0.4. - - - - - Serializes specified object to the . - - Destination . - Object to be serialized. - - is null. - - - Failed to serialize object. - - - is not serializable even if it can be deserialized. - - - - - - Deserialize object from the . - - Source . - The deserialized object. - - is null. - - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - is not serializable even if it can be serialized. - - - - - - Serializes specified object with specified . - - which packs values in . - Object to be serialized. - - is null. - - - Failed to serialize object. - - - is not serializable even if it can be deserialized. - - - - - - Serializes specified object with specified . - - which packs values in . This value will not be null. - Object to be serialized. - - Failed to serialize object. - - - is not serializable even if it can be deserialized. - - - - - - Deserializes object with specified . - - which unpacks values of resulting object tree. - The deserialized object. - - is null. - - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - is not serializable even if it can be serialized. - - - - - - Unpacks the nil value. - - - A valid value of which represents 'null' state. - - - - This method is invoked from method when the current is nil. - - - The implementation of this class returns null for nullable types (that is, all reference types and ); otherwise, throws . - - - Custom serializers can override this method to provide custom nil representation. For example, built-in serializer overrides this method to return instead of null. - - - - - - Deserializes object with specified . - - which unpacks values of resulting object tree. This value will not be null. - The deserialized object. - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - is not serializable even if it can be serialized. - - - - - - Deserializes collection items with specified and stores them to . - - which unpacks values of resulting object tree. - Collection that the items to be stored. - - is null. - Or is null. - - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - is not mutable collection. - - - - - - Deserializes collection items with specified and stores them to . - - which unpacks values of resulting object tree. This value will not be null. - Collection that the items to be stored. This value will not be null. - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - is not mutable collection. - - - - - - Serializes specified object to the array of . - - Object to be serialized. - An array of which stores serialized value. - - Failed to serialize object. - - - is not serializable even if it can be deserialized. - - - - - - Deserializes a single object from the array of which contains a serialized object. - - An array of serialized value to be stored. - The deserialized object. - - is null. - - - Failed to deserialize object. - - - Failed to deserialize object due to invalid stream. - - - Failed to deserialize object due to invalid stream. - - - The type of deserializing is not serializable even if it can be serialized. - - - - - This method assumes that contains single serialized object dedicatedly, - so this method does not return any information related to actual consumed bytes. - - - This method is a counter part of . - - - - - - generic method. - - - - - generic method. - - - - - generic method. - - - - - generic method. - - - - - Specifies nil implication in serialization/deserialization. - - - - - A nil is interpreted as default value of the member. - - - - This value affects only deserialization. - - - If the unpacking value is nil, the serializer will not set any value to the member. - - - This value corresponds to optional on the IDL. - - - This is default option because the most safe option. - - - - - - A nil is interpreted as null. - - - - This value affects only deserialization. - - - If the unpacking value is nil, the serializer will set null to the member. - If the member is non-nullable value type and the packed value is nil, then will be thrown. - - - This value corresponds to nullable required on the IDL. - - - If the destination end point sends nil for the value type member like type, - you can avoid the exception with change the type of the member to nullable value type. - - - - - - A nil is prohibitted. - - - - This value affects both of serialization and deserialization. - - - If the packing value is null or the unpacking value is nil, - the serializer will throw exception. - - - This value corresponds to required on the IDL. - - - When you specify this value to newly added member, - it means that you BREAK backword compatibility. - - - - - - Defines base features to handle nil implication. - - The type of the actual action for handking. - The type of the condition for packing value nil check. - The type of the implementation specific on-packing methods parameter. - The type of the implementation specific on-unpacked methods parameter. - - - - Represents parameters of method. - - - - - The packer. - - - - - The object to be packed. - - - - - Delegates each ones unpack single member in order. - The 1st argument will be and 2nd argument will be . - - - - - Represents parameters of method. - - - - - The packer. - - - - - The object to be packed. - - - - - The which contains dictionary based serialization related options. - - - - - Delegates table each ones check whether a member is null. - The argument will be and returns true if the argument value is null. - This dictionary should not contain for value type members except . - - - - - Delegates table each ones unpack single member and their keys correspond to unpacking membmer names. - The 1st argument will be and 2nd argument will be . - - - - - This is intened to MsgPack for CLI internal use. Do not use this type from application directly. - Defines serialization helper APIs. - - - - - Packs object to msgpack array. - - The type of the packing object. - The packer. - The object to be packed. - - Delegates each ones unpack single member in order. - The 1st argument will be and 2nd argument will be . - - The unpacked object. - - is null. - Or, is null. - - - - - Packs object to msgpack array. - - The type of the packing object. - The reference of object which represents parameters of this method. - The unpacked object. - - of is null. - Or, of is null. - - - - - Packs object to msgpack map. - - The type of the packing object. - The packer. - The object to be packed. - - Delegates table each ones unpack single member and their keys correspond to unpacking membmer names. - The 1st argument will be and 2nd argument will be . - - - is null. - - - is null. - - - - - Packs object to msgpack map. - - The type of the packing object. - The reference of object which represents parameters of this method. - - of is null. - - - of is null. - - - - - Defines internal protocol betwenn polymorphic serializers and collection serializers to accomplish polymorphism. - - - - - Common interfaces among polymorhic helper attributes. - - - - - Common interfaces among *Known*TypeAttrbutes. - - - - - Common(marker) interfaces among *Runtime*TypeAttrbutes. - - - - - Common interfaces among *TupleItemTypeAttributes. - - - - - Implements polymorphic serializer which uses closed known types and interoperable ext-type feature. - - The base type of the polymorhic member. - - - - Provides polymorphism for serializers. - - - - - - Implements polymorphic serializer which uses open types and non-interoperable ext-type tag and .NET type information. - - The base type of the polymorhic member. - - - - Implements type info encoding for type embedding. - - - - - Represents type info encoding. - - - - - - This is intened to MsgPack for CLI internal use. Do not use this type from application directly. - - - A provider parameter to support polymorphism. - - - - - - Creates a new instance of the class for non-collection object which uses type embedding based polymorphism. - - The type of the serialization target. - A new instance of the class for non-collection object which uses type embedding based polymorphism. - is null. - - - - Creates a new instance of the class for non-collection object which uses ext-type code mapping based polymorphism. - - The type of the serialization target. - The code-type mapping which maps between ext-type codes and .NET s. - A new instance of the class for non-collection object which uses ext-type code mapping based polymorphism. - is null. - - - - Creates a new instance of the class for collection object which uses declared type or context specified concrete type. - - The type of the serialization target. - The schema for collection items of the serialization target collection. - A new instance of the class for collection object which uses declared type or context specified concrete type. - is null. - - - - Creates a new instance of the class for collection object which uses type embedding based polymorphism. - - The type of the serialization target. - The schema for collection items of the serialization target collection. - A new instance of the class for collection object which uses type embedding based polymorphism. - is null. - - - - Creates a new instance of the class for collection object which uses ext-type code mapping based polymorphism. - - The type of the serialization target. - The code type mapping which maps between ext-type codes and .NET s. - The schema for collection items of the serialization target collection. - A new instance of the class for collection object which uses ext-type code mapping based polymorphism. - is null. - - - - Creates a new instance of the class for dictionary object which uses declared type or context specified concrete type. - - The type of the serialization target. - The schema for dictionary keys of the serialization target dictionary. - The schema for dictionary values of the serialization target dictionary. - A new instance of the class for dictionary object which uses declared type or context specified concrete type. - is null. - - - - Creates a new instance of the class for dictionary object which uses type embedding based polymorphism. - - The type of the serialization target. - The schema for dictionary keys of the serialization target dictionary. - The schema for dictionary values of the serialization target dictionary. - A new instance of the class for dictionary object which uses type embedding based polymorphism. - is null. - - - - Creates a new instance of the class for dictionary object which uses ext-type code mapping based polymorphism. - - The type of the serialization target. - The code type mapping which maps between ext-type codes and .NET s. - The schema for dictionary keys of the serialization target dictionary. - The schema for dictionary values of the serialization target dictionary. - A new instance of the class for dictionary object which uses ext-type code mapping based polymorphism. - is null. - - - - Gets the type of the serialization target. - - - The type of the serialization target. This value can be null. - - - - - Gets the type of the polymorphism. - - - The type of the polymorphism. - - - - - Gets the code type mapping which maps between ext-type codes and .NET s. - - - The code type mapping which maps between ext-type codes and .NET s. - - - - - Gets the schema for child items of the serialization target collection/tuple. - - - The schema for child items of the serialization target collection/tuple. - - - - - Gets the schema for collection items of the serialization target collection. - - - The schema for collection items of the serialization target collection. - - - - - Gets the schema for dictionary keys of the serialization target collection. - - - The schema for collection items of the serialization target collection. - - - - - Default instance (null object). - - - - - ForPolymorphicObject( Type targetType ) - - - - - ForPolymorphicObject( Type targetType, IDictionary{byte, Type} codeTypeMapping ) - - - - - ForContextSpecifiedCollection( Type targetType, PolymorphismSchema itemsSchema ) - - - - - ForPolymorphicCollection( Type targetType, PolymorphismSchema itemsSchema ) - - - - - ForPolymorphicCollection( Type targetType, IDictionary{byte, Type} codeTypeMapping, PolymorphismSchema itemsSchema ) - - - - - ForContextSpecifiedDictionary( Type targetType, PolymorphismSchema keysSchema, PolymorphismSchema valuesSchema ) - - - - - ForPolymorphicDictionary( Type targetType, PolymorphismSchema keysSchema, PolymorphismSchema valuesSchema ) - - - - - ForPolymorphicDictionary( Type targetType, IDictionary{byte, Type} codeTypeMapping, PolymorphismSchema keysSchema, PolymorphismSchema valuesSchema ) - - - - - Represents children items type of - - - - - Leaf, that is no children schema. - - - - - Collection items, so children count is 1. - - - - - Dictionary keys and values, so children count is 2, index 0 is for keys, 1 is for values. - - - - - Specifies or target. - - - - - Applies to member type itself. - This option disables settings. - - - - - Applies to items of collection member type (values for dictionary). - This options causes entire attribute will be ignored for non-collection types. - - - - - Applies to keys of dictionary member type. - This options causes entire attribute will be ignored for non-dictionary types. - - - - - Applies to keys of dictionary member type. - This options causes entire attribute will be ignored for non-dictionary types. - - - - - Defines a type of the polymorphism. - - - - - No polymorphism. - - - - - Knwon ext-type code based polymorphism. - - - - - Non-interoperable type info embedding based polymorphism. - - - - - This is intened to MsgPack for CLI internal use. Do not use this type from application directly. - Defines serialization helper reflection APIs. - - - - - Gets a specified even if the method is not publicly exposed. - - The type to be introspected. - The name of the method. - The parameter types of the method. - A object. - - This method is designed for property accessor for serialization, so this never return generic methods and static methods. - - - - - Gets a specified even if the field is not publicly exposed. - - The type to be introspected. - The name of the method. - A object. - - This method is designed for property accessor for serialization, so this never return static fields. - - - - - Implements reflection-based enum serializer for restricted platforms. - - - - - Implements reflection-based object serializer for restricted platforms. - - - - - Helper static methods for reflection serializers. - - - - - Defines non-generic factory method for 'universal' serializers which use general collection features. - - - - - Define utility extension method for generic type. - - - - - Determine whether the source type implements specified generic type or its built type. - - Target type. - Generic interface type. - - true if implements , - or built closed generic interface type; - otherwise false. - - - - - Get name of type without namespace and assembly name of itself and its generic arguments. - - Target type. - Simple name of type. - - - - Get full name of type including namespace and excluding assembly name of itself and its generic arguments. - - Target type. - Full name of type. - - - - Defines utility extension method for reflection API. - - - - - Determines whether specified can be assigned to source . - - The source type. - The type to compare with the source type. - - true if and represent the same type, - or if is in the inheritance hierarchy of , - or if is an interface that implements, - or if is a generic type parameter and represents one of the constraints of . - false if none of these conditions are true, or if is false. - - - - - Get IL friendly attributes string. - - . - IL friendly attributes string delimited by ASCII whitespace. - - - - Get IL friendly attributes string. - - . - IL friendly attributes string delimited by ASCII whitespace. - - - - Get IL friendly attributes string. - - . - IL friendly attributes string delimited by ASCII whitespace. - - - - like IL stream builder with tracing. - - - - - Emit 'call' or 'callvirt' appropriately. - - to be called. - - - - Emit property getter invocation. - Pre condition is there is target instance on the top of evaluation stack when is instance property. - Post condition are that target instance will be removed from the stack for instance property, and property value will be placed on there. - - for target property. - - - - Emit load 'this' pointer instruction (namely 'ldarg.0'). - Post condition is that the loaded value will be added on the evaluation stack. - - - - - Emit apprpriate 'ldarg.*' instruction. - Post condition is that the loaded value will be added on the evaluation stack. - - - Index of argument to be fetched. - - - - - Emit apprpriate 'ldloc.*' instruction. - Post condition is that the loaded value will be added on the evaluation stack. - - - Index of local variable to be fetched. - - - - - Emit array initialization code with initializer. - Pre condition is that the storing value is placed on the top of evaluation stack and its type is valid. - Post condition is that the stored value will be removed from the evaluation stack. - - - Index of local variable which stores the array. - - - - - Emit array initialization code without initializer. - Post condition is evaluation stack will no be modified as previous state. - Note that initialized array is not placed on the top of evaluation stack. - - of array element. This can be generaic parameter. - Size of array. - - - - Emit array element storing instructions. - Post condition is evaluation stack will no be modified as previous state. - - of array element. This can be generaic parameter. - - Delegate to emittion of array loading instruction. - 1st argument is this instance. - Post condition is that exactly one target array will be added on the top of stack and its element type is . - - - Delegate to emittion of array index. - 1st argument is this instance. - Post condition is that int4 or int8 type value will be added on the top of stack and its element type is . - - - - - Emit array element storing instructions. - Post condition is evaluation stack will no be modified as previous state. - - of array element. This can be generaic parameter. - - Delegate to emittion of array loading instruction. - 1st argument is this instance. - Post condition is that exactly one target array will be added on the top of stack and its element type is . - - - Delegate to emittion of array index. - 1st argument is this instance. - Post condition is that int4 or int8 type value will be added on the top of stack and its element type is . - - - Delegate to emittion of storing element loading instruction. - 1st argument is this instance. - Post condition is that exactly one storing element will be added on the top of stack and its type is compatible. - - - - - Emit efficient integer constant loading. - Post condition is that exactly one integer will be added on the top of stack. - - Integer value. - - - - Emit 'typeof' expression. - Post condition is instance for will be placed on the top of evaluation stack. - - Target . - - - - Get for end of method. - - - for end of method. - - - - - Get whether there are any exception blocks in current positon. - - - If there are any exception blocks in current positon then true; otherwise, false. - - - - - Get whether this IL stream is ended with 'ret'. - - - When this IL stream is ended with 'ret' then true; otherwise, false. - - - - - Initializes a new instance of the class. - - The method builder. - The trace writer. - true if the underlying builders are debuggable; othersie false. - - - - Initializes a new instance of the class. - - The constructor builder. - The trace writer. - true if the underlying builders are debuggable; othersie false. - - - - Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - - - - - Emit 'ret' instruction with specified arguments. - - - - - Declare local with name for debugging and without pinning. - Note that this method is not enabled for dynamic method. - - of local variable. - Name of the local variable. - to refer declared local variable. - - - - Begin exception block (try in C#) here. - Note that you do not have to emit leave or laeve.s instrauction at tail of the body. - - will to be end of begun exception block. - - - - Begin finally block. - Note that you do not have to emit endfinally instrauction at tail of the body. - - - - - End current exception block and its last clause. - - - - - Define new with name for tracing. - - Name of label. Note that debugging information will not have this name. - which will be target of branch instructions. - - - - Mark current position using specifieid . - - . - - - - Write trace message. - - The string. - - - - Write trace line break. - - - - - Write trace message followed by line break. - - The string. - - - - Write trace message followed by line break. - - The format string. - Format argument. - - - - Emit 'ldarg.0' instruction with specified arguments. - - - - - Emit 'ldarg.1' instruction with specified arguments. - - - - - Emit 'ldarg.2' instruction with specified arguments. - - - - - Emit 'ldarg.3' instruction with specified arguments. - - - - - Emit 'ldloc.0' instruction with specified arguments. - - - - - Emit 'ldloc.1' instruction with specified arguments. - - - - - Emit 'ldloc.2' instruction with specified arguments. - - - - - Emit 'ldloc.3' instruction with specified arguments. - - - - - Emit 'stloc.0' instruction with specified arguments. - - - - - Emit 'stloc.1' instruction with specified arguments. - - - - - Emit 'stloc.2' instruction with specified arguments. - - - - - Emit 'stloc.3' instruction with specified arguments. - - - - - Emit 'ldarg.s' instruction with specified arguments. - - as value. - - - - Emit 'ldarga.s' instruction with specified arguments. - - as value. - - - - Emit 'ldloc.s' instruction with specified arguments. - - as value. - - - - Emit 'ldloca.s' instruction with specified arguments. - - as value. - - - - Emit 'stloc.s' instruction with specified arguments. - - as value. - - - - Emit 'ldnull' instruction with specified arguments. - - - - - Emit 'ldc.i4.m1' instruction with specified arguments. - - - - - Emit 'ldc.i4.0' instruction with specified arguments. - - - - - Emit 'ldc.i4.1' instruction with specified arguments. - - - - - Emit 'ldc.i4.2' instruction with specified arguments. - - - - - Emit 'ldc.i4.3' instruction with specified arguments. - - - - - Emit 'ldc.i4.4' instruction with specified arguments. - - - - - Emit 'ldc.i4.5' instruction with specified arguments. - - - - - Emit 'ldc.i4.6' instruction with specified arguments. - - - - - Emit 'ldc.i4.7' instruction with specified arguments. - - - - - Emit 'ldc.i4.8' instruction with specified arguments. - - - - - Emit 'ldc.i4.s' instruction with specified arguments. - - as value. - - - - Emit 'ldc.i4' instruction with specified arguments. - - as value. - - - - Emit 'ldc.i8' instruction with specified arguments. - - as value. - - - - Emit 'ldc.r4' instruction with specified arguments. - - as value. - - - - Emit 'ldc.r8' instruction with specified arguments. - - as value. - - - - Emit 'pop' instruction with specified arguments. - - - - - Emit 'call' instruction with specified arguments. - - as target. - - - - Emit 'br' instruction with specified arguments. - - as target. - - - - Emit 'brfalse' instruction with specified arguments. - - as target. - - - - Emit 'brtrue' instruction with specified arguments. - - as target. - - - - Emit 'add' instruction with specified arguments. - - - - - Emit 'and' instruction with specified arguments. - - - - - Emit 'callvirt' instruction with specified arguments. - - as target. - - - - Emit 'ldobj' instruction with specified arguments. - - as type. - - - - Emit 'ldstr' instruction with specified arguments. - - as value. - - - - Emit 'newobj' instruction with specified arguments. - - as constructor. - - - - Emit 'ldfld' instruction with specified arguments. - - as field. - - - - Emit 'ldflda' instruction with specified arguments. - - as field. - - - - Emit 'stfld' instruction with specified arguments. - - as field. - - - - Emit 'stobj' instruction with specified arguments. - - as type. - - - - Emit 'box' instruction with specified arguments. - - as type. - - - - Emit 'newarr' instruction with specified arguments. - - as type. - - - - Emit 'ldelema' instruction with specified arguments. - - as type. - - - - Emit 'ldelem.i1' instruction with specified arguments. - - - - - Emit 'ldelem.u1' instruction with specified arguments. - - - - - Emit 'ldelem.i2' instruction with specified arguments. - - - - - Emit 'ldelem.u2' instruction with specified arguments. - - - - - Emit 'ldelem.i4' instruction with specified arguments. - - - - - Emit 'ldelem.u4' instruction with specified arguments. - - - - - Emit 'ldelem.i8' instruction with specified arguments. - - - - - Emit 'ldelem.r4' instruction with specified arguments. - - - - - Emit 'ldelem.r8' instruction with specified arguments. - - - - - Emit 'ldelem.ref' instruction with specified arguments. - - - - - Emit 'stelem.i1' instruction with specified arguments. - - - - - Emit 'stelem.i2' instruction with specified arguments. - - - - - Emit 'stelem.i4' instruction with specified arguments. - - - - - Emit 'stelem.i8' instruction with specified arguments. - - - - - Emit 'stelem.r4' instruction with specified arguments. - - - - - Emit 'stelem.r8' instruction with specified arguments. - - - - - Emit 'stelem.ref' instruction with specified arguments. - - - - - Emit 'ldelem' instruction with specified arguments. - - as type. - - - - Emit 'stelem' instruction with specified arguments. - - as type. - - - - Emit 'unbox.any' instruction with specified arguments. - - as type. - - - - Emit 'ldtoken' instruction with specified arguments. - - as target. - - - - Emit 'ldtoken' instruction with specified arguments. - - as target. - - - - Emit 'ldtoken' instruction with specified arguments. - - as target. - - - - Emit 'ceq' instruction with specified arguments. - - - - - Emit 'cgt' instruction with specified arguments. - - - - - Emit 'clt' instruction with specified arguments. - - - - - Emit 'ldftn' instruction with specified arguments. - - as method. - - - - Emit 'ldarg' instruction with specified arguments. - - as index. - - - - Emit 'ldarga' instruction with specified arguments. - - as index. - - - - Emit 'ldloc' instruction with specified arguments. - - as index. - - - - Emit 'ldloca' instruction with specified arguments. - - as index. - - - - Emit 'stloc' instruction with specified arguments. - - as index. - - - - Emit 'initobj' instruction with specified arguments. - - as type. - - - - Represents event information for event. - - - - - - Gets the which raises this event. - - - The which raises this event. This value will not be null. - - - A sender parameter of the event handler has same instance for this. - - - - - Gets the target type which is getting serializer. - - - The target type which is getting serializer. This value will not be null. - - - - - Gets the which represents polymorphism information for the current member. - - - The which represents polymorphism information for the current member. This value will not be null. - - - - - Gets the found serializer the event subscriber specified. - - - The found serializer the event subscriber specified. null represents default behavior is wanted. - - - - - Sets the serializer instance which can handle type instance correctly. - - The serializer instance which can handle type instance correctly; null when you cannot provide appropriate serializer instance. - - If you decide to delegate serializer generation to MessagePack for CLI infrastructure, do not call this method in your event handler or specify null for . - - - - - Represents compatibility options of serialization runtime. - - - - - Gets or sets a value indicating whether System.Runtime.Serialization.DataMemberAttribute.Order should be started with 1 instead of 0. - - - true if System.Runtime.Serialization.DataMemberAttribute.Order should be started with 1 instead of 0; otherwise, false. - Default is false. - - - Using this value, you can switch between MessagePack for CLI and ProtoBuf.NET seamlessly. - - - - - Gets or sets the . - - - The . The default is . - - - - Changing this property value does not affect already built serializers -- especially built-in (default) serializers. - You must specify enumeration to the constructor of to - change built-in serializers' behavior. - - - - - - Gets or sets a value indicating whether serializer generator ignores packability interfaces for collections or not. - - - true if serializer generator ignores packability interfaces for collections; otherwise, false. The default is false. - - - Historically, MessagePack for CLI ignored packability interfaces (, , - and ) for collection which implements (except and its kinds). - As of 0.7, the generator respects such interfaces even if the target type is collection. - Although this behavior is desirable and correct, setting this property true turn out the new behavior for backward compatibility. - - - - - Gets or sets a value indicating whether the serializer generator should serialize types that implement IEnumerable but do not have an Add method. - - - true if serializer generator should serialize a type implementing IEnumerable as a normal type if a public Add method is not found; otherwise, false. The default is true. - - - Historically, MessagePack for CLI always tried to serialize any type that implemented IEnumerable as a collection, throwing an exception - if an Add method could not be found. However, for types that implement IEnumerable but don't have an Add method the generator will now - serialize the type as a non-collection type. To restore the old behavior for backwards compatibility, set this option to false. - - - - - This is intened to MsgPack for CLI internal use. Do not use this type from application directly. - Represents serialization context information for internal serialization logic. - - - - - Gets or sets the default instance. - - - The default instance. - - The setting value is null. - - - - Gets the current . - - - The current . - - - - - Gets the option settings for serializer generation. - - - The option settings for serializer generation. - This value will not be null. - - - - - Gets the compatibility options. - - - The which stores compatibility options. This value will not be null. - - - - - Gets the dictionary(map) based serialization options. - - - The which stores dictionary(map) based serialization options. This value will not be null. - - - - - Gets or sets the to determine serialization strategy. - - - The to determine serialization strategy. - - The setting value is invalid as enum. - - - - Gets or sets the to determine default serialization strategy of enum types. - - - The to determine default serialization strategy of enum types. - - The setting value is invalid as enum. - - A serialization strategy for specific member is determined as following: - - If the member is marked with and its value is not , then it will be used. - Otherwise, if the enum type itself is marked with , then it will be used. - Otherwise, the value of this property will be used. - - Note that the default value of this property is , it is not size efficient but tolerant to unexpected enum definition change. - - - - - Gets or sets the to control code generation. - - The setting value is invalid as enum. - - The . - - - - - Gets the default collection types. - - - The default collection types. This value will not be null. - - - - - Gets or sets a value indicating whether runtime generation is disabled or not. - - - true if runtime generation is disabled; otherwise, false. - - - - - Gets or sets the default conversion methods of built-in serializers. - - - The default conversion methods of built-in serializers. The default is . - - The setting value is invalid as enum. - - As of 0.6, value is serialized as its native representation instead of interoperable UTC milliseconds Unix epoc. - This behavior solves some debugging problem and interop issues, but breaks compability. - If you want to change this behavior, set this value to . - - - - - Occurs when the context have not find appropriate registered nor built-in serializer for specified type. - - - This event will be occured when the context could not found known serializer from: - - - Known built-in serializers for arrays, nullables, and collections, etc. - - - Known default serializers for some known various FCL value types and some reference types. - - - Previously registered or generated serializer. - - - You can instantiate your custom serializer using various properties, - and then call to provide toward the context. - - You can use to get dependent serializers as you like, - but you should never explicitly register new serializer(s) explicitly via the context from the event handler and its dependents. - Instead, you specify the instanciated serializer with once at a time. - Dependent serializer(s) should be registered via next (nested) raise of this event. - - - The context implicitly holds 'lock' for the target type for the requested serializer in the current thread. - So you should not use any synchronization primitives in the event handler and its dependents, - or you may face complex dead lock. - That is, the event handler should be as simple as possible like just instanciate the serializer and set it to the event argument. - - - - - - Configures as new classic instance. - - The previously set context as . - - - - - Creates a new which is configured as same as 0.5. - - - A new which is configured as same as 0.5. - - - There are breaking changes of properties to improve API usability and to prevent accidental failure. - This method returns a which configured as classic style settings as follows: - - - - Default (as of 0.6) - Classic (before 0.6) - - - Packed object members order (if members are not marked with nor System.Runtime.Serialization.DataMemberAttribute and serializer uses ) - As declared (metadata table order) - As lexicographical - - - value - Native representation (100-nano ticks, preserving .) - UTC, milliseconds Unix epoc. - - - - - - - Initializes a new instance of the class with copy of . - - - - - Initializes a new instance of the class with copy of for specified . - - which will be used on built-in serializers. - - - - Gets the with this instance without provider parameter. - - Type of serialization/deserialization target. - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - This method automatically register new instance via . - - - - - Gets the with this instance. - - Type of serialization/deserialization target. - A provider specific parameter. See remarks section for details. - - . - If there is exiting one, returns it. - Else the new instance will be created. - - - - This method automatically register new instance via . - - - Currently, only following provider parameters are supported. - - - Target type - Provider parameter - - - or its descendants. - . The returning instance corresponds to this value for serialization. - - - null is valid value for and it indeicates default behavior of parameter. - - - - - - Gets the serializer for the specified . - - Type of the serialization target. - - . - If there is exiting one, returns it. - Else the new instance will be created. - If the platform supports async/await programming model, return type is IAsyncMessagePackSingleObjectSerializer. - - - is null. - - - Although is preferred, - this method can be used from non-generic type or methods. - - - - - Gets the serializer for the specified . - - Type of the serialization target. - A provider specific parameter. See remarks section of for details. - - . - If there is exiting one, returns it. - Else the new instance will be created. - If the platform supports async/await programming model, return type is IAsyncMessagePackSingleObjectSerializer. - - - is null. - - - Although is preferred, - this method can be used from non-generic type or methods. - - - - - Gets the current mapping table of ext type code. - - - The which maps between known ext type names and ext type codes. - - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Defines common exception factory methods. - - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that value type cannot be null on deserialization. - - The name of the member. - The type of the member. - The type that declares the member. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Throws an exception to notify that value type cannot be null on deserialization. - - The name of the member. - The type of the member. - The type that declares the member. - Always thrown. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that value type cannot be null on deserialization. - - The target type. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that value type cannot serialize. - - The target type. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that value type cannot deserialize. - - The target type. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that value type cannot deserialize. - - The target type. - The name of deserializing member. - The inner exception. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that item is not found on the unpacking stream. - - The index to be unpacking. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Throws a exception to notify that item is not found on the unpacking stream. - - The index to be unpacking. - The unpacker for pretty message. - Always thrown. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Throws a exception to notify that item is not found on the unpacking stream. - - The index to be unpacking. - The name of the item to be unpacking. - The unpacker for pretty message. - Always thrown. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that target type is not serializable because it does not have public default constructor. - - The target type. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that target type is not serializable because it does not have both of public default constructor and public constructor with an Int32 parameter. - - The target type. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that required field is not found on the unpacking stream. - - The name of the property. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that unpacking stream ends on unexpectedly position. - - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that target collection type does not declare appropriate Add(T) method. - - The target type. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that unpacker is not in the array header, that is the state is invalid. - - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Throws an exception to notify that unpacker is not in the array header, that is the state is invalid. - - The unpacker for pretty message. - Always thrown. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that unpacker is not in the array header, that is the state is invalid. - - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Throws an exception to notify that unpacker is not in the map header, that is the state is invalid. - - The unpacker for pretty message. - Always thrown. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that operation is not supported because cannot be instanciated. - - Type. - instance. It will not be null. - - - - - - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that the array length does not match to expected tuple cardinality. - - The expected cardinality of the tuple. - The actual serialized array length. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Throws an exception to notify that the array length does not match to expected tuple cardinality. - - The expected cardinality of the tuple. - The actual serialized array length. - The unpacker for pretty message. - Always thrown. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that the underlying stream is not correct semantically because failed to unpack items count of array/map. - - The inner exception for the debug. The value is implementation specific. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that the unpacking collection is too large to represents in the current runtime environment. - - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that the member cannot be null or the unpacking value cannot be nil because nil value is explicitly prohibitted. - - The name of the member. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Throws an exception to notify that the member cannot be null or the unpacking value cannot be nil because nil value is explicitly prohibitted. - - The name of the member. - Always thrown. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that the unpacking value cannot be nil because the target member is read only and its type is collection. - - The name of the member. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that the unpacking collection value is not a collection. - - The name of the member. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that the unpacking array size is not expected length. - - Expected, required for deserialization array length. - Actual array length. - instance. It will not be null. - - - - This is intended to MsgPack for CLI internal use. Do not use this type from application directly. - Returns new exception to notify that it is failed to deserialize member. - - Deserializing type. - The name of the deserializing member. - The exception which caused current error. - instance. It will not be null. - - - - Throws an exception to notify that it is failed to deserialize member. - - Deserializing type. - The name of the deserializing member. - The exception which caused current error. - - - - Represents serialization method for complex types. - - - - - The object will be serialized as array which is ordered by member ID. - This is default and more interoperable option. - - - - - The object will be serialized as map which is ordered by member ID. - This is a bit slower than array, but more stable for forward/backward compatibility. - - - - - Define options of serializer generation. - - - - - The generated method IL can be dumped to the current directory. - It is intended for the runtime, you cannot use this option. - - - - - The entire generated method can be collected by GC when it is no longer used. - - - - - Prefer performance. This options is default. - - - - - Implements serialization target member extraction logics. - - - - - Represents configuration for pre-generated serializer assembly generation. - - - - - Gets or sets the output directory for generated source codes. - - - The output directory for generated source codes. - The default is current directory. - - The specified value is null. - The specified value is empty or too long. - The specified path format is not supported. - - - - Gets or sets the serialization method to pack object. - - - A value of . - - Specified value is not valid . - - - - Gets or sets the default enum serialization method for generating enum type serializers. - - - A value of . - - Specified value is not valid . - - - - Gets or sets the name of the assembly. - This property is required. - - - The name of the assembly. - - - - - Gets or sets a value indicating whether recursively generates dependent types which do not have built-in serializer or not. - - - true if recursively generates dependent types which do not have built-in serializer; otherwise, false. - - - - - Gets or sets a value indicating whether prefer reflection based collection serializers instead of dyhnamic generated serializers. - - - true if prefer reflection based collection serializers instead of dyhnamic generated serializers; otherwise, false. - - - - - Gets or sets a value indicating whether creating Nullable of T serializers for value type serializers. - - - true if creates Nullable of T serializers for value type serializers; otherwise, false. - - - - - Gets or sets the namespace of generated classes. - - - The namespace of generated classes. - The default is "MsgPack.Serialization.GeneratedSerializers". - - Specified value is not valid for namespace. - - - - Gets the compatibility options for generating serializers. - - - The which stores compatibility options for generating serializers. This value will not be null. - - - - - Gets or sets a value indicating whether generated serializers will override async methods or not. - - - true if generated serializers will override async methods; otherwise, false. - Default is true. - - - - - Initializes a new instance of the class. - - - - - Represents serializer capabilities. - - - - - None. - - - - - Caller can call Pack and PackTo method safely. - If this flag is not set, the serializer may be deserialize only serializer. - - - - - Caller can call Unpack and UnpackFrom method safely. - If this flag is not set, the serializer may be serialize only serializer. - - - - - Caller can call UnpackTo method safely. - If this flag is not set, the serializer should not be for mutable collection type. - - - - - Represents configuration for serializer code generation. - - - - - Gets or sets the namespace of generated classes. - - - The namespace of generated classes. - The default is "MsgPack.Serialization.GeneratedSerializers". - - Specified value is not valid for namespace. - - - - Gets or sets the output directory for generated source codes. - - - The output directory for generated source codes. - The default is current directory. - - The specified value is null. - The specified value is empty or too long. - The specified path format is not supported. - - - - Gets or sets the language identifier for code generation. - - - The language identifier for code generation. - This value must be registered identifier in CodeDOM configuration. - The default is "C#". - - - This value will be passed as-is for an underlying code dom provider. - - - - - - Gets or sets the indentation string for code generation. - - - The indentation string for code generation. - The default is " "(4 U+0020 chars). - - - This value will be passed as-is for an underlying code dom provider. - - - - - - Gets or sets the serialization method to pack object. - - - A value of . - - Specified value is not valid . - - - - Gets or sets the default enum serialization method for generating enum type serializers. - - - A value of . - - Specified value is not valid . - - - - Gets or sets a value indicating whether recursively generates dependent types which do not have built-in serializer or not. - - - true if recursively generates dependent types which do not have built-in serializer; otherwise, false. - - - - - Gets or sets a value indicating whether prefer reflection based collection serializers instead of dyhnamic generated serializers. - - - true if prefer reflection based collection serializers instead of dyhnamic generated serializers; otherwise, false. - - - - - Gets or sets a value indicating whether creating Nullable of T serializers for value type serializers. - - - true if creates Nullable of T serializers for value type serializers; otherwise, false. - - - - - Gets or sets a value indicating whether the generated serializers will be internal to MsgPack library itself. - - - true if the generated serializers are internal to MsgPack library itself; otherwise, false. - - - When you use MsgPack in Unity3D, you can import the library in source code form to your assets. - And, you may also import generated serializers together, then the generated serializers and MsgPack library will be same assembly ultimately. - It causes compilation error because some of overriding members have accessbility FamilyOrAssembly(protected internal in C#), - so the generated source code must have the accessibility when and only when they will be same assembly as MsgPack library itself. - - - - - Gets the compatibility options for generating serializers. - - - The which stores compatibility options for generating serializers. This value will not be null. - - - - - Gets or sets a value indicating whether generated serializers will override async methods or not. - - - true if generated serializers will override async methods; otherwise, false. - Default is true. - - - - - Initializes a new instance of the class. - - - - - Represents result of serializer code generation for each input target types. - - - - - Gets the file path which contains generated serializer. - - - The file path which contains generated serializer. - - - If the generation method generates source codes, this property indicates each generated source code file. - Else, if the genration method generates an assembly, this property indicates the assembly file. - This property will not be null, and will be valid file path. - - - - - Gets the target type of serializer generation. - - - The target type of serializer generation. - This property will not be null. - - - - - Gets the namespace of the generated serializer. - - - The namespace of the generated serializer. - This value will not be null, but might be empty which represents global namespace. - - - - - Gets the type name of the generated serializer. - - - The type name of the generated serializer. - This property will not be null nor empty. - - - - - Gets the full name of the generated serializer type. - - - The full name of the generated serializer type. - This property will not be null nor empty. - - - - - Holds debugging support information. - - - - - Gets or sets a value indicating whether instruction/expression tracing is enabled or not. - - - true if instruction/expression tracing is enabled; otherwise, false. - - - - - Gets or sets a value indicating whether IL dump is enabled or not. - - - true if IL dump is enabled; otherwise, false. - - - - - Gets or sets a value indicating whether generic serializer for array, , , - or is not used. - - - true if generic serializer is not used; otherwise, false. - - - - - Gets the for IL tracing. - - - The for IL tracing. - This value will not be null. - - - - - Traces the specific event. - - The format string. - The args for formatting. - - - - Flushes the trace data. - - - - - Prepares instruction dump with specified . - - The assembly builder to hold instructions. - - - - Prepares the dump with dedicated internal . - - - - - Creates the new type builder for the serializer. - - The serialization target type. - - PrepareDump() was not called. - - - - Takes dump of instructions. - - - - - Resets debugging states. - - - - - Provides pre-compiled serialier assembly generation. - - - Currently, generated assembly has some restrictions: - - - The type name cannot be customize. It always to be MsgPack.Serialization.EmittingSerializers.Generated.<ESCAPED_TARGET_NAME>Serializer. - Note that the ESCAPED_TARGET_NAME is the string generated by replacing type delimiters with undersecore ('_'). - - - The assembly cannot be used on WinRT because - - - - You should NOT assume at all like class hierarchy of generated type, its implementing interfaces, custom attributes, or dependencies. - They subject to be changed in the future. - If you want to get such fine grained control for them, you should implement own hand made serializers. - - - - - - Gets the type of the root object which will be serialized/deserialized. - - - The first entry of . - This value will be null when the is empty. - - - - - Gets target types will be generated dedicated serializers. - - - A collection which stores target types will be generated dedicated serializers. - - - - - Gets the name of the assembly to be generated. - - - The name of the assembly to be generated. - - - - - Gets or sets the which indicates serialization method to be used. - - - The which indicates serialization method to be used. - - - - - Initializes a new instance of the class. - - Name of the assembly to be generated. - - is null. - - - - - Initializes a new instance of the class. - - Type of the root object which will be serialized/deserialized. - Name of the assembly to be generated. - - is null. - Or is null. - - - - - Generates the serializer assembly and save it to current directory. - - The path of generated files. - Some I/O error is occurred on saving assembly file. - - - - Generates the serializer assembly and save it to specified directory. - - The path of directory where newly generated assembly file will be located. If the directory does not exist, then it will be created. - The path of generated files. - is null. - is not valid. - is too long. - is existent file. - Cannot create specified directory for access control of file system. - Some I/O error is occurred on creating directory or saving assembly file. - - - - Generates an assembly which contains auto-generated serializer types for specified types. - - The which holds required and optional settings. - The target types where serializer types to be generated. - The file path for generated single module assembly file. - is null. Or, is null. - of is not set correctly. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are automatically generated. - - - - - Generates an assembly which contains auto-generated serializer types for specified types. - - The which holds required and optional settings. - The target types where serializer types to be generated. - The file path for generated single module assembly file. - is null. Or, is null. - of is not set correctly. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are automatically generated. - - - - - Generates an assembly which contains auto-generated serializer types for specified types. - - The which holds required and optional settings. - The target types where serializer types to be generated. - - A collection which correspond to codes generated to . - All properties of items will be same and will point to generated DLL file. - - is null. Or, is null. - of is not set correctly. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are automatically generated. - - - - - Generates an assembly which contains auto-generated serializer types for specified types. - - The which holds required and optional settings. - The target types where serializer types to be generated. - - A collection which correspond to codes generated to . - All properties of items will be same and will point to generated DLL file. - - is null. Or, is null. - of is not set correctly. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are automatically generated. - - - - - Generates source codes which implement auto-generated serializer types for specified types with default configuration. - - The target types where serializer types to be generated. - A file path collection which correspond to codes generated to . - is null. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are NOT generated. - This method just generate serializer types for specified types. - - - - - Generates source codes which implement auto-generated serializer types for specified types with default configuration. - - The target types where serializer types to be generated. - A file path collection which correspond to codes generated to . - is null. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are NOT generated. - This method just generate serializer types for specified types. - - - - - Generates source codes which implement auto-generated serializer types for specified types with specified configuration. - - The which holds optional settings. Specifying null means using default settings. - The target types where serializer types to be generated. - A file path collection which correspond to codes generated to . - is null. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are NOT generated. - This method just generate serializer types for specified types. - - - - - Generates source codes which implement auto-generated serializer types for specified types with specified configuration. - - The which holds optional settings. Specifying null means using default settings. - The target types where serializer types to be generated. - A file path collection which correspond to codes generated to . - is null. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are NOT generated. - This method just generate serializer types for specified types. - - - - - Generates source codes which implement auto-generated serializer types for specified types with default configuration. - - The target types where serializer types to be generated. - A collection which correspond to codes generated to . - is null. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are NOT generated. - This method just generate serializer types for specified types. - - - - - Generates source codes which implement auto-generated serializer types for specified types with default configuration. - - The target types where serializer types to be generated. - A collection which correspond to codes generated to . - is null. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are NOT generated. - This method just generate serializer types for specified types. - - - - - Generates source codes which implement auto-generated serializer types for specified types with specified configuration. - - The which holds optional settings. Specifying null means using default settings. - The target types where serializer types to be generated. - A collection which correspond to codes generated to . - is null. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are NOT generated. - This method just generate serializer types for specified types. - - - - - Generates source codes which implement auto-generated serializer types for specified types with specified configuration. - - The which holds optional settings. Specifying null means using default settings. - The target types where serializer types to be generated. - A collection which correspond to codes generated to . - is null. - Failed to generate a serializer because of . - - Serializer types for dependent types which are refered from specified are NOT generated. - This method just generate serializer types for specified types. - - - - - Defines options for serializer generation. - - - - - Gets or sets the . - - - The - - - For testing purposes. - - - - - Gets or sets the to control code generation. - - The setting value is invalid as enum. - - The . - - - - - Gets or sets a value indicating whether runtime generation is disabled or not. - - - true if runtime generation is disabled; otherwise, false. - - - - - Represents options for custom or pre-generated serializer registration. - - - - - None of options are applied. - - - - - Overrides existing registration with specified serializer. - - - - - For non-nullable value type, registering nullable companion simulary. - - - - - Repository of known s. - - - - - Initializes a new empty instance of the class. - - - - - Initializes a new instance of the class which has copied serializers. - - The repository which will be copied its contents. - - is null. - - - - - This method does not perform any operation. - - - - - Gets the registered from this repository without provider parameter. - - Type of the object to be marshaled/unmarshaled. - A serialization context. - - . If no appropriate mashalers has benn registered, then null. - - - - - Gets the registered from this repository with specified provider parameter. - - Type of the object to be marshaled/unmarshaled. - A serialization context. - A provider specific parameter. See remarks section of for details. - - . If no appropriate mashalers has benn registered, then null. - - - - - - Registers a . - - The type of serialization target. - instance. - - true if success to register; otherwise, false. - - - is null. - - - This method invokes with . - - If you register serializer for value type, using is recommended because auto-generated deserializers use them to handle nil value. - You can use with to - get equivalant behavior for this method with registering nullable serializer automatically. - - - - - - Registers a . - - The type of serialization target. - instance. - A to control this registration process. - - true if success to register; otherwise, false. - - - is null. - - - - - Registers a forcibley. - - The type of serialization target. - instance. - - is null. - - - This method invokes with . - - If you register serializer for value type, using is recommended because auto-generated deserializers use them to handle nil value. - You can use - with and to - get equivalant behavior for this method with registering nullable serializer automatically. - - - - - - Gets the system default repository bound to default context. - - - The system default repository. - This value will not be null. - Note that the repository is frozen. - - - - - Gets the system default repository bound to default context. - - - The system default repository. - This value will not be null. - Note that the repository is frozen. - - - - - Gets the system default repository bound to default context. - - Not used. - - The system default repository. - This value will not be null. - Note that the repository is frozen. - - - - - Gets the system default repository bound for specified context. - - A which will be bound to default serializers. - is null. - - The system default repository. - This value will not be null. - Note that the repository is frozen. - - - - - Specialized for serializers. - - - - - Represents serializing member information. - - - - - Repository for key type with RWlock scheme. - - - - - Represents parameters of method. - - The type of the context object which will store deserialized value. - The type of the value. - - - - The unpacker. - - - - - The context which will store deserialized value. - - - - - The serializer to deserialize current item. - - - - - The items count to be unpacked. - - - - - The current unpacked count for debugging. - - - - - The current unpacked count for debugging. - - - - - The delegate which takes and unpacked value, and then set the value to the context. - - - - - The current unpacked count for debugging. - - - - - The delegate which refers direct reading. This field should be null when is specified. - - - - - Represents parameters of method. - - The type of the context object which will store deserialized value. - The type of the value. - - - - The unpacker. - - - - - The context which will store deserialized value. - - - - - The serializer to deserialize current item. - - - - - The items count to be unpacked. - - - - - The current unpacked count for debugging. - - - - - The current unpacked count for debugging. - - - - - The delegate which takes and unpacked value, and then set the value to the context. - - - - - The current unpacked count for debugging. - - - - - The delegate which refers direct reading. This field should be null when is specified. - - - - - The nil implication of current item. - - - - - Represents parameters of method. - - The type of the context object which will store deserialized value. - The type of the value. - - - - The unpacker. - - - - - The context which will store deserialized value. - - - - - The serializer to deserialize current item. - - - - - The items count to be unpacked. - - - - - The current unpacked count for debugging. - - - - - The current unpacked count for debugging. - - - - - The delegate which takes and unpacked value, and then set the value to the context. - - - - - The current unpacked count for debugging. - - - - - The delegate which refers direct reading. This field should be null when is specified. - - - - - The nil implication of current item. - - - - - Represents parameters of method. - - The type of the context object which will store deserialized value. - - - - The unpacker. - - - - - The context which will store deserialized value. - - - - - The serializer to deserialize current item. - - - - - The items count to be unpacked. - - - - - The current unpacked count for debugging. - - - - - The current unpacked count for debugging. - - - - - The delegate which takes and unpacked value, and then set the value to the context. - - - - - The nil implication of current item. - - - - - Represents parameters of method. - - The type of the context object which will store deserialized value. - The type of the unpacked object. - - - - The unpacker. - - - - - The context which will store deserialized value. - - - - - A delegate to the factory method which creates the result from the context. - - - - - The names of the members for pretty exception message. - - - - - Delegates each ones unpack single member in order. - The 1st argument will be , 2nd argument will be , - 3rd argument is index of current item, and 4th argument is total items count in the array or map stream. - - - - - Represents parameters of method. - - The type of the context object which will store deserialized value. - The type of the unpacked object. - - - - The unpacker. - - - - - The context which will store deserialized value. - - - - - A delegate to the factory method which creates the result from the context. - - - - - Delegates each ones unpack single member in order. - The key of this dictionary must be member name. - The 1st argument will be , 2nd argument will be , - 3rd argument is index of current item, and 4th argument is total items count in the array or map stream. - - - - - Represents parameters of method. - - The type of the collection to be unpacked. - - - - The unpacker. - - - - - The items count to be unpacked. - - - - - The collection instance to be added unpacked items. - - - - - A delegate to the bulk operation (typically UnpackToCore call). - The 1st argument will be , 2nd argument will be , - and 3rd argument will be . - If this field is null, will be used. - - - - - A delegate to the operation for each items, which typically unpack value and append it to the . - The 1st argument will be , 2nd argument will be , - and 3rd argument will be index of the current item. - If field is not null, this field will be ignored. - - - - - This is intened to MsgPack for CLI internal use. Do not use this type from application directly. - Defines serialization helper APIs. - - - - - Unpacks the array to the specified array. - - The type of the array element. - The unpacker to unpack the underlying stream. - The serializer to deserialize array. - The array instance to be filled. - - Failed to deserialization. - - - - - Unpacks the collection with the specified method as colletion of . - - The unpacker to unpack the underlying stream. - The non-generic collection instance to be added unpacked elements. - The delegate which contains the instance method of the . The parameter is unpacked object. - - Failed to deserialization. - - - - - Unpacks the dictionary with the specified method as colletion of . - - The type of elements. - The unpacker to unpack the underlying stream. - The serializer to deserialize elements. - The generic collection instance to be added unpacked elements. - The delegate which contains the instance method of the . The parameter is unpacked object. - - Failed to deserialization. - - - - - Unpacks the collection with the specified method as colletion of . - - The return type of Add method. - The unpacker to unpack the underlying stream. - The non-generic collection instance to be added unpacked elements. - The delegate which contains the instance method of the . The parameter is unpacked object. - - Failed to deserialization. - - - - - Unpacks the dictionary with the specified method as colletion of . - - The type of elements. - The return type of Add method. - The unpacker to unpack the underlying stream. - The serializer to deserialize elements. - The generic collection instance to be added unpacked elements. - The delegate which contains the instance method of the . The parameter is unpacked object. - - Failed to deserialization. - - - - - Unpacks the dictionary with the specified method as colletion of . - - The type of keys. - The type of values. - The unpacker to unpack the underlying stream. - The serializer to deserialize key elements. - The serializer to deserialize value elements. - The generic dictionary instance to be added unpacked elements. - - Failed to deserialization. - - - - - Unpacks the dictionary with the specified method as colletion of . - - The unpacker to unpack the underlying stream. - The non-generic dictionary instance to be added unpacked elements. - - Failed to deserialization. - - - - - Gets the items count as . - - The unpacker. - The items count as . - is null. - The items count is greater than . - - The items count of the collection can be between and , - but most collections do not support so big count. - - - - - Ensures the boxed type is not null thus it cannot be unboxing. - - The type of the member. - The boxed deserializing value. - The name of the member. - The type of the target. - The unboxed value. - - - - Invokes FAMANDASM method directly. - - The type of deserializing object. - The invocation target . - The unpacker to be passed to the method. - A deserialized value. - - - - Retrieves a most appropriate constructor with capacity parameter and comparer parameter or both of them, >or default constructor of the . - - The target collection type to be instanciated. - A constructor of the . - - - - Determines the type is . - - The type should be . - - true, if is open generic type; false, otherwise. - - - - - Gets an with platform safe fashion. - - The type to be compared. - - An instance. - - - - - Gets the delegate which just returns the input ('identity' function). - - The type of input and output. - - delegate which just returns the input. This value will not be null. - - - - - Gets the delegate which returns the input ('identity' function) as output type. - - The type of output. - - delegate which returns the converted input. This value will not be null. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Boolean type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Boolean type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Byte type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Byte type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Int16 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Int16 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Int32 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Int32 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Int64 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Int64 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack SByte type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack SByte type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack UInt16 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack UInt16 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack UInt32 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack UInt32 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack UInt64 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack UInt64 type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Single type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Single type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Double type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack Double type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack string type value from underlying stream. - - - - - Invokes and returns its result. - - The unpacker to be used. - The type of the object which is deserializing now. - The name of the member which is deserializing now. - - An unpacked value. - - - Failed to unpack byte array type value from underlying stream. - - - - - Unpacks the complex object from specified with specified / - - The type of unpacking value. - The unpacker. - The serializer to deserialize complex object. - The current unpacked count for debugging. - - A value read from current stream. - - - is null. - Or, is null. - - - is negative number. - - - - - Unpacks the value type value from MessagePack stream. - - The type of the context object which will store deserialized value. - The type of the value. - The unpacker. - The context which will store deserialized value. - The serializer to deserialize complex object. This parameter should be null when is specified. - The items count to be unpacked. - The unpacked items count. - Type of the target object for debugging message. - Name of the member for debugging message. - The delegate which refers direct reading. This parameter should be null when is specified. - The delegate which takes and unpacked value, and then set the value to the context. - - is null. - Or, is null. - Or, is null. - Or, is null. - Or, is null. - - - is negative number. - Or, is negative number. - - - Both of and are null. - - - - - Unpacks the value type value from MessagePack stream. - - The type of the context object which will store deserialized value. - The type of the value. - The reference to object. - - of is null. - Or, of is null. - Or, of is null. - Or, of is null. - Or, of is null. - - - of is negative number. - Or, of is negative number. - - - Both of - and of are null. - - - - - Unpacks the reference type value from MessagePack stream. - - The type of the context object which will store deserialized value. - The type of the value. - The unpacker. - The context which will store deserialized value. - The serializer to deserialize complex object. This parameter should be null when is specified. - The items count to be unpacked. - The unpacked items count. - Type of the target object for debugging message. - Name of the member for debugging message. - The nil implication of current item. - The delegate which refers direct reading. This parameter should be null when is specified. - The delegate which takes and unpacked value, and then set the value to the context. - - is null. - Or, is null. - Or, is null. - Or, is null. - Or, is null. - - - is negative number. - Or, is negative number. - - - Both of and are null. - - - - - Unpacks the reference type value from MessagePack stream. - - The type of the context object which will store deserialized value. - The type of the value. - The reference to object. - - of is null. - Or, of is null. - Or, of is null. - Or, of is null. - Or, of is null. - - - of is negative number. - Or, of is negative number. - - - Both of - and of are null. - - - - - Unpacks the nullable type value from MessagePack stream. - - The type of the context object which will store deserialized value. - The type of the value. - The unpacker. - The context which will store deserialized value. - The serializer to deserialize complex object. This parameter should be null when is specified. - The items count to be unpacked. - The unpacked items count. - Type of the target object for debugging message. - Name of the member for debugging message. - The nil implication of current item. - The delegate which refers direct reading. This parameter should be null when is specified. - The delegate which takes and unpacked value, and then set the value to the context. - - is null. - Or, is null. - Or, is null. - Or, is null. - Or, is null. - - - is negative number. - Or, is negative number. - - - Both of and are null. - - - - - Unpacks the nullable type value from MessagePack stream. - - The type of the context object which will store deserialized value. - The type of the value. - The reference to object. - - of is null. - Or, of is null. - Or, of is null. - Or, of is null. - Or, of is null. - - - of is negative number. - Or, of is negative number. - - - Both of - and of are null. - - - - - Unpacks the value from MessagePack array. - - The type of the context object which will store deserialized value. - The unpacker. - The context which will store deserialized value. - The items count to be unpacked. - The unpacked items count. - Name of the member for debugging message. - The nil implication of current item. - The delegate which takes and unpacked value, and then set the value to the context. - - is null. - Or, is null. - Or, is null. - Or, is null. - - - is negative number. - Or, is negative number. - - - - - Unpacks the value from MessagePack map. - - The type of the context object which will store deserialized value. - The unpacker. - The context which will store deserialized value. - The items count to be unpacked. - The unpacked items count. - Name of the member for debugging message. - The nil implication of current item. - The delegate which takes and unpacked value, and then set the value to the context. - - is null. - Or, is null. - Or, is null. - Or, is null. - - - is negative number. - Or, is negative number. - - - - - Unpacks the value from MessagePack stream. - - The type of the context object which will store deserialized value. - The reference to object. - - of is null. - Or, of is null. - Or, of is null. - Or, of is null. - - - of is negative number. - Or, of is negative number. - - - - - Unpacks object from msgpack array. - - The type of the context. - The type of the unpacked object. - The unpacker. - The context which holds intermediate states. This value may be null when the caller implementation allows it. - A delegate to the factory method which creates the result from the context. - The names of the members for pretty exception message. - - Delegates each ones unpack single member in order. - The 1st argument will be , 2nd argument will be , - and 3rd argument is index of current item. - - - An unpacked object. - - - is null. - Or, is null. - Or, is null. - - - - - Unpacks object from msgpack array. - - The type of the context. - The type of the unpacked object. - The reference to object. - - An unpacked object. - - - of is null. - Or, of is null. - Or, of is null. - - - - - Unpacks object from msgpack map. - - The type of the context. - The type of the unpacked object. - The unpacker. - The context which holds intermediate states. This value may be null when the caller implementation allows it. - A delegate to the factory method which creates the result from the context. - - Delegates each ones unpack single member in order. - The key of this dictionary must be member name. - The 1st argument will be , 2nd argument will be , - and 3rd argument is index of current item. - - - An unpacked object. - - - is null. - Or, is null. - Or, is null. - - - - - Unpacks object from msgpack map. - - The type of the context. - The type of the unpacked object. - The reference to object. - - An unpacked object. - - - of is null. - Or, of is null. - Or, of is null. - - - - - Unpacks the collection from MessagePack stream. - - The type of the collection to be unpacked. - The unpacker where position is located at array or map header. - The collection count gotten from the . - The collection instance to be added unpacked items. - - A delegate to the bulk operation (typically UnpackToCore call). - The 1st argument will be , 2nd argument will be , - and 3rd argument will be . - If this parameter is null, will be used. - - - A delegate to the operation for each items, which typically unpack value and append it to the . - The 1st argument will be , 2nd argument will be , - and 3rd argument will be index of the current item. - If parameter is not null, this parameter will be ignored. - - - An unpacked collection. - - - - - Unpacks the collection from MessagePack stream. - - The type of the collection to be unpacked. - The reference to object. - - An unpacked collection. - - - - - Implements basic (maybe naive) implementation for common Set<T> operation. - - - - - Basic implementation using managed . - - - - - Defines subtree unpacking unpacker. - - - - - Represents unpacking error when message type is not valid because 0xC1 will never be assigned. - - - - - Initializes a new instance of the class with the default error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - - The exception that is the cause of the current exception, or a null if no inner exception is specified. - - - - - Initializes a new instance of the class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - Implements deserializing feature of MsgPack. - - - implements three mode, that is 'Streaming', 'Skipping' and 'Subtree'. - - - - Streaming - - - When the is called, unpacker go into 'Streaming' mode. - In this mode, unpacker unpacks individual entries as via property. - If the underlying stream is ended unexpectedly, then returns false, and will be null. - Note that if the underlying stream is feeded, that is the is expanded and its is not forwarded, - subsequent invocation will success, and is set as complete entry which reflects feeded binary. - - - If the reading of the entry is completed, that is the is not null, unpacker can transit other mode. - - - - - Skipping - - - When the is called, unpacker go into 'Skipping' mode. - In this mode, unpacker scans the subtree where the root is current item, then returns skipped byte length. - If the underlying stream is ended unexpectedly, it returns null. - Note that if the underlying stream is feeded, that is the is expanded and its is not forwarded, - subsequent invocation will success, and returns length as complete entry which reflects feeded binary. - - If the underlying is cannot be seeked (that is, is false), - DO NOT use this method. - You can buffering the content via instead, for example. - - - - If the skipping of the subtree is completed, that is the return value is not null, unpacker can transit other mode. - - - - - Subtree - - - When the is called, unpacker go into 'Subtree' mode. - In this mode, any operation for this unpacker instance is invalid. - Instead of use this instance itself, you can use subtree unpacker returned from . - The subtree unpacker is the instance which scope is limited to the subtree where the root is the current entry when is called. - The subtree unpacker also have its own mode and state. - - of the subtree unpacker must be called to indicate subtree unpacking is gracefully completed. - When the extra entries are remained in the subtree, these will be skipped on the disposal process. - - - - Once the subtree unpacking is completed gracefully, that is, on the subtree unpacker called, the parant unpacker can transit other mode. - - - - - - - - - Gets a last unpacked data. - - A last unpacked data. - - - In default implementation, this property never returning null even if it had not been unpacked any objects. - - If you use any of direct APIs (methods which return non-), - then this property to be invalidated. - Note that the actual value of invalidated this property is undefined. - - - - - Gets a last unpacked data. - - A last unpacked data. Initial value is . - - If you use any of direct APIs (methods which return non-), - then this property to be invalidated. - Note that the actual value of invalidated this property is undefined. - - - - - Gets a value indicating whether this instance is positioned to array header. - - - true if this instance is positioned to array header; otherwise, false. - - - - - Gets a value indicating whether this instance is positioned to map header. - - - true if this instance is positioned to map header; otherwise, false. - - - - - Gets a value indicating whether this instance is positioned to array or map header. - - - true if this instance is positioned to array or map header; otherwise, false. - - - - - Gets the items count for current array or map. - - - The items count for current array or map. - - - Both of the and are false. - - - - - Verifies the mode. - - The mode to be. - - Already disposed. - - - Is in incompatible mode. - - - - - Verifies this instance is not disposed. - - - - - Gets the underlying stream to handle direct API. - - - This instance does not supoort direct API. - - - - - Gets the previous position before last operation for debugging. - - The offset or position. - true for the is real position of the underlying stream;false if the value is offset from the root unpaker instance was created. - - - - Creates the new from specified stream. - - The stream to be unpacked. This stream will be closed when is called. - instance. - - - - Creates the new from specified stream. - - The stream to be unpacked. - - true to close when this instance is disposed; - false, otherwise. - - instance. - - - - Creates the new from specified stream. - - The stream to be unpacked. - which specifies stream handling options. - instance. - - - - Initializes a new instance of the class. - - - - - Releases all managed resources. - - - - - Releases unmanaged and optionally managed resources. - - true to release both managed and unmanaged resources; false to release only unmanaged resources. - - - - Drains remaining items in current context. - - - This method drains remaining items in context of subtree mode unpacker. - This method does not any effect for other types of unpacker. - - - - - Starts unpacking of current subtree. - - - to unpack current subtree. - This will not be null. - - - This unpacker is not positioned on the header of array nor map. - Or this unpacker already returned for subtree and it has not been closed yet. - - - While subtree unpacker is used, this instance will be 'locked' (called 'subtree' mode) and be unavailable. - When you finish to unpack subtree, you must invoke , - or you faces when you use the parent instance. - Subtree unpacker can only unpack subtree, so you can handle collection deserialization easily. - - - - - Starts unpacking of current subtree. - - - to unpack current subtree. - This will not be null. - - - - - Ends the read subtree. - - - This method only be called from subtree unpacker. - Custom subtree unpacker implementation must call this method from its method. - - - - - Reads next Message Pack entry. - - - true, if position is sucessfully move to next entry; - false, if position reaches the tail of the Message Pack stream. - - - This instance is in 'subtree' mode. - - - The underying stream unexpectedly ended. - - - - - Reads next Message Pack entry. - - - true, if position is sucessfully move to next entry; - false, if position reaches the tail of the Message Pack stream. - - - - - Gets to enumerate from source stream. - - to enumerate from source stream. - - - - Skips the subtree where the root is the current entry, and returns skipped byte length. - - - Skipped byte length. - If the subtree is not completed, then null. - - - - - Skips the subtree where the root is the current entry, and returns skipped byte length. - - - Skipped byte length. - If the subtree is not completed, then null. - - - - - Gets a current item or collection as single from the stream. - - - A read item or collection from the stream. - Or null when stream is ended. - - - - - Gets a current item or collection as single from the stream. - - - A read item or collection from the stream. - - The stream unexpectedly ends. - - - - Unpacks current subtree and returns subtree root as array or map. - - - An unpacked array or map when current position is array or map header. - null when current position is not array nor map header. - - - - - Unpacks current subtree and returns subtree root as array or map. - - - An unpacked array or map when current position is array or map header. - Or when current position is not array nor map header. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next value from current stream. - - - The value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the type. - - - - - Reads next nullable value from current stream. - - - The nullable value read from current stream to be stored when operation is succeeded. - - - The nullable value read from current data source successfully. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not compatible for the nullable type. - - - - - Reads next array length value from current stream. - - - The array length read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not an array. - - - - - Reads next map length value from current stream. - - - The map length read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not a map. - - - - - Reads next byte array value from current stream. - - - The byte array read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not a raw. - - - - - Reads next utf-8 encoded string value from current stream. - - - The decoded utf-8 encoded string read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - A value read from data source is not a raw. - - - - - Reads next value from current stream. - - - The which represents a value read from current stream to be stored when operation is succeeded. - - - true if expected value was read from stream; false if no more data on the stream. - Note that this method throws exception for unexpected state. See exceptions section. - - - Cannot read a value because the underlying stream unexpectedly ends. - - - - - Represents generic unpacking error. - - - - - Initializes a new instance of the class with the default error message. - - - - - Initializes a new instance of the class with a specified error message. - - The message that describes the error. - - - - Initializes a new instance of the class with a specified error message and a reference to the inner exception that is the cause of this exception. - - The error message that explains the reason for the exception. - - The exception that is the cause of the current exception, or a null if no inner exception is specified. - - - - - Initializes a new instance of the class with serialized data. - - - The that holds the serialized object data about the exception being thrown. - - - The that contains contextual information about the source or destination. - - The parameter is null. - - - The class name is null or is zero (0). - - - - - Defines direct conversion value from/to Message Pack binary stream without intermediate . - - - This class provides convinient way to unpack objects from wellknown seekable stream. - This class does not support stream feeding. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks value from the specified . - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the array from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked the array and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - The items count of the underlying collection body is over . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the array from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked the array and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - The items count of the underlying collection body is over . - - - When the type of packed value is not known, use instead. - - - - - Unpacks the array value from the specified . - - The which contains Message Pack binary stream. - - The unpacked the array value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - The items count of the underlying collection body is over . - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks length of the array from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of nullable which contains unpacked length of the array and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to nullable . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks length of the array from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of nullable which contains unpacked length of the array and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to nullable . - - - When the type of packed value is not known, use instead. - - - - - Unpacks length of the array value from the specified . - - The which contains Message Pack binary stream. - - The unpacked length of the array value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to nullable . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the dictionary from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked the dictionary and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - The items count of the underlying collection body is over . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the dictionary from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked the dictionary and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - The items count of the underlying collection body is over . - - - When the type of packed value is not known, use instead. - - - - - Unpacks the dictionary value from the specified . - - The which contains Message Pack binary stream. - - The unpacked the dictionary value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - The items count of the underlying collection body is over . - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks count of the dictionary entries from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of nullable which contains unpacked count of the dictionary entries and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to nullable . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks count of the dictionary entries from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of nullable which contains unpacked count of the dictionary entries and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to nullable . - - - When the type of packed value is not known, use instead. - - - - - Unpacks count of the dictionary entries value from the specified . - - The which contains Message Pack binary stream. - - The unpacked count of the dictionary entries value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to nullable . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the raw binary from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of [] which contains unpacked the raw binary and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to []. - - - The items count of the underlying collection body is over . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the raw binary from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of [] which contains unpacked the raw binary and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to []. - - - The items count of the underlying collection body is over . - - - When the type of packed value is not known, use instead. - - - - - Unpacks the raw binary value from the specified . - - The which contains Message Pack binary stream. - - The unpacked the raw binary value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to []. - Note that the state of will be unpredictable espicially it is not seekable. - - - The items count of the underlying collection body is over . - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the boolean from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked the boolean and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the boolean from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked the boolean and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks the boolean value from the specified . - - The which contains Message Pack binary stream. - - The unpacked the boolean value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the nil from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked the nil and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the nil from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked the nil and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks the nil value from the specified . - - The which contains Message Pack binary stream. - - The unpacked the nil value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the which represents the value which has MessagePack type semantics. from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked the which represents the value which has MessagePack type semantics. and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the which represents the value which has MessagePack type semantics. from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked the which represents the value which has MessagePack type semantics. and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - When the type of packed value is not known, use instead. - - - - - Unpacks the which represents the value which has MessagePack type semantics. value from the specified . - - The which contains Message Pack binary stream. - - The unpacked the which represents the value which has MessagePack type semantics. value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the which represents the extended type value. from the head of specified byte array. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked the which represents the extended type value. and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - The items count of the underlying collection body is over . - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks the which represents the extended type value. from the specified byte array. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked the which represents the extended type value. and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not grator than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - - - The items count of the underlying collection body is over . - - - When the type of packed value is not known, use instead. - - - - - Unpacks the which represents the extended type value. value from the specified . - - The which contains Message Pack binary stream. - - The unpacked the which represents the extended type value. value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not compatible to . - Note that the state of will be unpredictable espicially it is not seekable. - - - The items count of the underlying collection body is over . - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks raw value from the specified as . - - The which contains Message Pack binary stream. - - The which represents raw value stream. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not raw binary. - Note that the state of will be unpredictable espicially it is not seekable. - - - - does not own , so still should be closed. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks raw value from the specified as with UTF-8 encoding. - - The which contains Message Pack binary stream. - - The which represents raw value stream as UTF-8 string. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not raw binary. - Note that the state of will be unpredictable espicially it is not seekable. - - - - if contains invalid sequence as UTF-8 encoding string, - the may occurs on read char. - - - does not own , so still should be closed. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks raw value from the specified as with specified encoding. - - The which contains Message Pack binary stream. - The to decode binary stream. - - The which represents raw value stream as UTF-8 string. - - - is null. - Or, is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not raw binary. - Note that the state of will be unpredictable espicially it is not seekable. - - - - if contains invalid sequence as specified encoding string, - the may occurs on read char. - - - does not own , so still should be closed. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array with UTF-8 encoding. - - The byte array which contains Message Pack binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - Or, the unpacked result in the is invalid as UTF-8 encoded byte stream. - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the head of specified byte array with specified encoding. - - The byte array which contains Message Pack binary stream. - The to decode binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - Or, is null. - - - is empty. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - Or, the unpacked result in the is invalid as UTF-8 encoded byte stream. - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from specified offsetted byte array with UTF-8 encoding. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - - The of which contains unpacked value and processed bytes count. - - - is null. - - - is empty. - Or, the length of is not greater than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - Or, the unpacked result in the is invalid as specified encoding byte stream. - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from specified offsetted byte array with specified encoding. - - The byte array which contains Message Pack binary stream. - The offset to be unpacking start with. - The to decode binary stream. - - The of which contains unpacked value and processed bytes count. - - - is null. - Or, is null. - - - is empty. - Or, the length of is not greater than . - - - is negative value. - - - is not valid MessagePack stream. - - - The unpacked result in the is not compatible to . - Or, the unpacked result in the is invalid as specified encoding byte stream. - - - - Invocation of this method is equivalant to call with offset is 0. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified with UTF-8 encoding. - - The which contains Message Pack binary stream. - - The unpacked value. - - - is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not raw binary. - Or, the unpacked result in the is invalid as UTF-8 encoded byte stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Unpacks value from the specified with specified encoding. - - The which contains Message Pack binary stream. - The to decode binary stream. - - The unpacked value. - - - is null. - Or is null. - - - The of is false. - - - is not valid MessagePack stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - The unpacked result in the is not raw binary. - Or, the unpacked result in the is invalid as specified encoding byte stream. - Note that the state of will be unpredictable espicially it is not seekable. - - - - The processed bytes count can be calculated via of when the is true. - - - When the type of packed value is not known, use instead. - - - - - - Represents result of direct conversion from the byte array. - - Type of value. - - - - Get read bytes count from input byte array. - - - Read bytes count from input byte array. - If this value equals to old offset, then a value of property is not undifined. - - - - - Get retrieved value from the byte array. - - - Retrieved value from the byte array. - If equals to old offset, then a value of this property is not undefined. - - - - - Compare two instances are equal. - - instance. - - If is and its value is equal to this instance, then true. - Otherwise false. - - - - - Compare two instances are equal. - - instance. - - Whether value of is equal to this instance or not. - - - - - Get hash code of this instance. - - Hash code of this instance. - - - - Get string representation of this object. - - String representation of this object. - - - DO NOT use this value programmically. - The purpose of this method is informational, so format of this value subject to change. - - - - - - Compare two instances are equal. - - instance. - instance. - - Whether value of and are equal each other or not. - - - - - Compare two instances are not equal. - - instance. - instance. - - Whether value of and are not equal each other or are equal. - - - - - Represents raw binary as read only . - - - - This object behaves as wrapper of the underlying which contains message pack encoded byte array. - But, this object does not own the stream, so that stream is not closed when this stream is closed. - - - The value of , timeout, and async API depends on the underlying stream. - - - - - - Gets a value indicating whether the current stream supports reading. - - Always true. - - - - Gets a value indicating whether the current stream supports writing. - - Always false. - - - - Gets the length in bytes of the stream. - - - A long value representing the length of the raw binary length. - This value must be between 0 and . - - - Methods were called after the stream was closed. - - - This property never throws even if is false. - - - - - Gets a value that determines whether the current stream can time out. - - - A value that determines whether the current stream can time out. - - - Methods were called after the stream was closed. - - - - - Reads a sequence of bytes from the current stream and advances the position within the stream by the number of bytes read. - - - An array of bytes. When this method returns, - the buffer contains the specified byte array with the values between and ( + - 1) - replaced by the bytes read from the current source. - - - The zero-based byte offset in at which to begin storing the data read from the current stream. - - - The maximum number of bytes to be read from the current stream. - - - The total number of bytes read into the buffer. - This can be less than the number of bytes requested if that many bytes are not currently available, - or zero (0) if the end of the stream has been reached. - - - The sum of and is larger than the buffer length. - - - is null. - - - or is negative. - - - An I/O error occurs. - - - Methods were called after the stream was closed. - - - - Arguments might be passed to the underlying without any validation. - - - - - - Overrides so that no action is performed. - - - - - Throws . - - Never used. - - Always thrown. - - - - - Throws . - - Never used. - Never used. - Never used. - - Always thrown. - - - - - Implements which reads raw binary with specific . - - - - - Gets the length of the underlying raw binary length. - - - The length of the underlying raw binary length. - This value will not be negative. - - - - - Common validtion utility. - - - - - Determine specified category is printiable. - - Unicode cateory. - - If all charactors in specified category are printable then true. - Other wise false. - - - This method is conservative, but application cannot print the charactor - because appropriate font is not installed the machine. - - - - - Defines extension methods to achieve compatiblity between .NET 3.5 and .NET 4.0. - - - - - Polyfill for System.Threading.Volatile. - - - - - Compatibility Mock. - - - - - Compatibility Mock. - - - - - Compatibility Mock. - - - - - Compatibility Mock. - - -
-
diff --git a/tools/mpu/bin/mpu.exe b/tools/mpu/bin/mpu.exe deleted file mode 100644 index 17f35f1084e1262d3a316c8331c23dfcefd1e8aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51200 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 Tz)g&)ynM{*d`#YdQUm`0fD34M diff --git a/tools/mpu/bin/mpu.exe.config b/tools/mpu/bin/mpu.exe.config deleted file mode 100644 index 51278a456..000000000 --- a/tools/mpu/bin/mpu.exe.config +++ /dev/null @@ -1,3 +0,0 @@ - - - From f004c249615ac3963abe994b298fa2d6124853a9 Mon Sep 17 00:00:00 2001 From: yfakariya Date: Wed, 5 Apr 2017 23:19:39 +0900 Subject: [PATCH 06/13] Update appveyor YAMLs to build with vs2017 toolset. --- appveyor-debug.yml | 1 + appveyor-release.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/appveyor-debug.yml b/appveyor-debug.yml index d8f5dbd74..9e615f46b 100644 --- a/appveyor-debug.yml +++ b/appveyor-debug.yml @@ -1,4 +1,5 @@ version: '{branch}-{build}' +image: Visual Studio 2017 skip_tags: true configuration: Debug init: diff --git a/appveyor-release.yml b/appveyor-release.yml index 001a70184..598ce2e36 100644 --- a/appveyor-release.yml +++ b/appveyor-release.yml @@ -1,4 +1,5 @@ version: '{branch}-{build}' +image: Visual Studio 2017 branches: only: - master From 4339e5aa925b1e87d2c575227f0396cd84a803fa Mon Sep 17 00:00:00 2001 From: yfakariya Date: Tue, 11 Apr 2017 21:39:53 +0900 Subject: [PATCH 07/13] Update NUnit. --- samples/Samples/Samples.csproj | 5 ++--- samples/Samples/packages.config | 2 +- .../MsgPack.UnitTest.BclExtensions.csproj | 5 ++--- test/MsgPack.UnitTest.BclExtensions/packages.config | 3 ++- .../MsgPack.UnitTest.CodeDom.Net35.csproj | 5 ++--- test/MsgPack.UnitTest.CodeDom.Net35/packages.config | 3 ++- .../MsgPack.UnitTest.CodeDom/MsgPack.UnitTest.CodeDom.csproj | 5 ++--- test/MsgPack.UnitTest.CodeDom/packages.config | 3 ++- test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj | 5 ++--- test/MsgPack.UnitTest.Net35/packages.config | 3 ++- test/MsgPack.UnitTest/MsgPack.UnitTest.csproj | 5 ++--- test/MsgPack.UnitTest/packages.config | 3 ++- 12 files changed, 23 insertions(+), 24 deletions(-) diff --git a/samples/Samples/Samples.csproj b/samples/Samples/Samples.csproj index 0fd41d282..8e95a4f24 100644 --- a/samples/Samples/Samples.csproj +++ b/samples/Samples/Samples.csproj @@ -33,9 +33,8 @@ 4 - - ..\..\packages\NUnit.3.2.1\lib\net45\nunit.framework.dll - True + + ..\..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll diff --git a/samples/Samples/packages.config b/samples/Samples/packages.config index 80c54474c..4b26cc066 100644 --- a/samples/Samples/packages.config +++ b/samples/Samples/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/test/MsgPack.UnitTest.BclExtensions/MsgPack.UnitTest.BclExtensions.csproj b/test/MsgPack.UnitTest.BclExtensions/MsgPack.UnitTest.BclExtensions.csproj index 9e749747d..325bf66d3 100644 --- a/test/MsgPack.UnitTest.BclExtensions/MsgPack.UnitTest.BclExtensions.csproj +++ b/test/MsgPack.UnitTest.BclExtensions/MsgPack.UnitTest.BclExtensions.csproj @@ -48,9 +48,8 @@ ..\..\packages\Microsoft.CodeAnalysis.CSharp.1.3.2\lib\net45\Microsoft.CodeAnalysis.CSharp.dll True - - ..\..\packages\NUnit.3.2.1\lib\net45\nunit.framework.dll - True + + ..\..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll diff --git a/test/MsgPack.UnitTest.BclExtensions/packages.config b/test/MsgPack.UnitTest.BclExtensions/packages.config index 11cc21910..853dd4c8a 100644 --- a/test/MsgPack.UnitTest.BclExtensions/packages.config +++ b/test/MsgPack.UnitTest.BclExtensions/packages.config @@ -3,7 +3,8 @@ - + + diff --git a/test/MsgPack.UnitTest.CodeDom.Net35/MsgPack.UnitTest.CodeDom.Net35.csproj b/test/MsgPack.UnitTest.CodeDom.Net35/MsgPack.UnitTest.CodeDom.Net35.csproj index 588233bee..8737d548d 100644 --- a/test/MsgPack.UnitTest.CodeDom.Net35/MsgPack.UnitTest.CodeDom.Net35.csproj +++ b/test/MsgPack.UnitTest.CodeDom.Net35/MsgPack.UnitTest.CodeDom.Net35.csproj @@ -38,9 +38,8 @@ ..\..\src\MsgPack.snk - - ..\..\packages\NUnit.3.2.1\lib\net35\nunit.framework.dll - True + + ..\..\packages\NUnit.3.6.1\lib\net35\nunit.framework.dll diff --git a/test/MsgPack.UnitTest.CodeDom.Net35/packages.config b/test/MsgPack.UnitTest.CodeDom.Net35/packages.config index a03e2f5d0..5220dcd5c 100644 --- a/test/MsgPack.UnitTest.CodeDom.Net35/packages.config +++ b/test/MsgPack.UnitTest.CodeDom.Net35/packages.config @@ -1,4 +1,5 @@  - + + \ No newline at end of file diff --git a/test/MsgPack.UnitTest.CodeDom/MsgPack.UnitTest.CodeDom.csproj b/test/MsgPack.UnitTest.CodeDom/MsgPack.UnitTest.CodeDom.csproj index ceac625ff..39810ae12 100644 --- a/test/MsgPack.UnitTest.CodeDom/MsgPack.UnitTest.CodeDom.csproj +++ b/test/MsgPack.UnitTest.CodeDom/MsgPack.UnitTest.CodeDom.csproj @@ -49,9 +49,8 @@ ..\..\packages\Microsoft.CodeAnalysis.CSharp.1.3.2\lib\net45\Microsoft.CodeAnalysis.CSharp.dll True - - ..\..\packages\NUnit.3.2.1\lib\net45\nunit.framework.dll - True + + ..\..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll diff --git a/test/MsgPack.UnitTest.CodeDom/packages.config b/test/MsgPack.UnitTest.CodeDom/packages.config index 11cc21910..853dd4c8a 100644 --- a/test/MsgPack.UnitTest.CodeDom/packages.config +++ b/test/MsgPack.UnitTest.CodeDom/packages.config @@ -3,7 +3,8 @@ - + + diff --git a/test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj b/test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj index 94bd29cec..a2126cc59 100644 --- a/test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj +++ b/test/MsgPack.UnitTest.Net35/MsgPack.UnitTest.Net35.csproj @@ -38,9 +38,8 @@ ..\..\src\MsgPack.snk - - ..\..\packages\NUnit.3.2.1\lib\net35\nunit.framework.dll - True + + ..\..\packages\NUnit.3.6.1\lib\net35\nunit.framework.dll diff --git a/test/MsgPack.UnitTest.Net35/packages.config b/test/MsgPack.UnitTest.Net35/packages.config index a03e2f5d0..5220dcd5c 100644 --- a/test/MsgPack.UnitTest.Net35/packages.config +++ b/test/MsgPack.UnitTest.Net35/packages.config @@ -1,4 +1,5 @@  - + + \ No newline at end of file diff --git a/test/MsgPack.UnitTest/MsgPack.UnitTest.csproj b/test/MsgPack.UnitTest/MsgPack.UnitTest.csproj index 1d5811aa1..6dd26473b 100644 --- a/test/MsgPack.UnitTest/MsgPack.UnitTest.csproj +++ b/test/MsgPack.UnitTest/MsgPack.UnitTest.csproj @@ -93,9 +93,8 @@ True - - ..\..\packages\NUnit.3.2.1\lib\net45\nunit.framework.dll - True + + ..\..\packages\NUnit.3.6.1\lib\net45\nunit.framework.dll diff --git a/test/MsgPack.UnitTest/packages.config b/test/MsgPack.UnitTest/packages.config index 11cc21910..853dd4c8a 100644 --- a/test/MsgPack.UnitTest/packages.config +++ b/test/MsgPack.UnitTest/packages.config @@ -3,7 +3,8 @@ - + + From f4693fdfaa30b82e6c2075fa2749b68b4e00e2e1 Mon Sep 17 00:00:00 2001 From: yfakariya Date: Sun, 30 Apr 2017 20:44:09 +0900 Subject: [PATCH 08/13] Update .editorconfig for VS2017. Note that some C#7 features are disabled for Unity compatibility. These restriction will be unlocked in Unity 2017.1 --- .editorconfig | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/.editorconfig b/.editorconfig index 361b867b1..817b32a4d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -23,3 +23,67 @@ tab_width = 4 [*.{xml,csproj}] indent_style = space indent_size = 2 + +# From https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference +# and https://github.com/dotnet/roslyn/blob/master/src/Workspaces/CSharp/Portable/Formatting/CSharpFormattingOptions.cs +[*.cs] +dotnet_style_qualification_for_field = true:warning +dotnet_style_qualification_for_property = true:warning +dotnet_style_qualification_for_method = true:warning +dotnet_style_qualification_for_event = true:warning +dotnet_style_predefined_type_for_locals_parameters_members = true:warning +dotnet_style_predefined_type_for_member_access = false:warning +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_coalesce_expression = true:warning +csharp_style_var_for_built_in_types = true:suggestion +csharp_style_var_when_type_is_apparent = true:suggestion +csharp_style_var_elsewhere = true:suggestion +dotnet_sort_system_directives_first = true +csharp_space_between_method_declaration_name_and_open_parenthesis = false +csharp_space_between_method_declaration_parameter_list_parentheses = true +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_parameter_list_parentheses = true +csharp_space_between_method_call_empty_parameter_list_parentheses = false +csharp_space_between_parentheses = expressions,type_casts,control_flow_statements +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_after_cast = false +csharp_space_around_declaration_statements = true +csharp_space_before_open_square_brackets = false +csharp_space_between_empty_square_brackets = false +csharp_space_between_square_brackets = true +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_after_comma = true +csharp_space_after_dot = false +csharp_space_after_semicolon_in_for_statement = true +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_before_comma = false +csharp_space_before_dot = false +csharp_space_before_semicolon_in_for_statement = false +csharp_space_around_binary_operators = true +csharp_indent_braces = false +csharp_indent_block_contents = true +csharp_indent_switch_labels = true +csharp_indent_case_contents = false +csharp_indent_labels = false +csharp_preserve_single_line_blocks = true +csharp_preserve_single_line_statements = true +csharp_new_line_before_open_brace = all +csharp_new_line_between_query_expression_clauses = true + +# Disabled for Unity compatibility until 2017.1 RTM +[*.cs] +dotnet_style_null_propagation = false:warning +csharp_style_expression_bodied_methods = false:warning +csharp_style_expression_bodied_constructors = false:warning +csharp_style_expression_bodied_operators = false:warning +csharp_style_expression_bodied_properties = false:warning +csharp_style_expression_bodied_indexers = false:warning +csharp_style_expression_bodied_accessors = false:warning +csharp_style_pattern_matching_over_is_with_cast_check = false:warning +csharp_style_pattern_matching_over_as_with_null_check = false:warning +csharp_style_inlined_variable_declaration = false:warning +csharp_style_throw_expression = false:warning +csharp_style_conditional_delegate_call = false:warning From dee86c696d0a914444fbe54ca355675f649af416 Mon Sep 17 00:00:00 2001 From: yfakariya Date: Sun, 30 Apr 2017 23:08:19 +0900 Subject: [PATCH 09/13] Fix target framework order. Visual Studio solution explorer uses first framework to show its source tree. --- src/MsgPack/MsgPack.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/MsgPack/MsgPack.csproj b/src/MsgPack/MsgPack.csproj index d905cf8f1..8be47adf9 100644 --- a/src/MsgPack/MsgPack.csproj +++ b/src/MsgPack/MsgPack.csproj @@ -11,7 +11,7 @@ MsgPack MsgPack 512 - net35;net45;net462;netstandard1.1;netstandard1.3;MonoAndroid10;Xamarin.iOS10 + net462;net35;net45;netstandard1.1;netstandard1.3;MonoAndroid10;Xamarin.iOS10 TRACE prompt 4 From ba14fa03f256e3703196778b53a758baa86d4915 Mon Sep 17 00:00:00 2001 From: yfakariya Date: Mon, 1 May 2017 09:48:20 +0900 Subject: [PATCH 10/13] Fix build script This commit migrates preview dotnet to latest msbuild. Note that this script depends on Visual Studio 2017 because dotnet CLI does not support .NET 3.5 and Xamarin yet. In addition this script assumes that build env has path to latest msbuild since it is hard to determine the path of msbuild due to it contains Visual Studio edition. --- build/Build.ps1 | 114 +++++++++++++++--------------------------------- 1 file changed, 36 insertions(+), 78 deletions(-) diff --git a/build/Build.ps1 b/build/Build.ps1 index d0ab6f5c4..ab4723f6d 100644 --- a/build/Build.ps1 +++ b/build/Build.ps1 @@ -1,18 +1,40 @@ param([Switch]$Rebuild) +[string]$msbuild = "msbuild" + if ( $env:APPVEYOR -eq "True" ) { - [string]$builder = "MSBuild.exe" - [string]$winBuilder = "MSBuild.exe" - [string]$nuget = "nuget" - [string]$nugetVerbosity = "quiet" - [string]$dotnetVerbosity = "Warning" # AppVeyor should have right MSBuild and dotnet-cli... # Android SDK should be installed in init and ANDROID_HOME should be initialized before this script. } else { + [string]$VSMSBuildExtensionsPath = $null + + $msbuildCandidates = @( + "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin\MSBuild.exe", + "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin\MSBuild.exe", + "${env:ProgramFiles(x86)}\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\bin\MSBuild.exe", + "${env:ProgramFiles}\Microsoft Visual Studio\2017\Community\MSBuild\15.0\bin\MSBuild.exe", + "${env:ProgramFiles}\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\bin\MSBuild.exe", + "${env:ProgramFiles}\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\bin\MSBuild.exe" + ) + foreach ( $msbuildCandidate in $msbuildCandidates ) + { + if ( ( Test-Path $msbuildCandidate ) ) + { + $VSMSBuildExtensionsPath = [IO.Path]::GetFullPath( [IO.Path]::GetDirectoryName( $msbuildCandidate ) + "\..\..\" ) + break; + } + } + + if ( $VSMSBuildExtensionsPath -eq $null ) + { + Write-Error "Failed to locate MSBuild.exe which can build .NET Core and .NET 3.5. VS2017 is required." + exit 1 + } + # Ensure Android SDK for API level 10 is installed. # Thanks to https://github.com/googlesamples/android-ndk/pull/80 @@ -29,27 +51,6 @@ else { ./UpdateAndroidSdk.cmd } - [string]$builder = "${env:ProgramFiles(x86)}\MSBuild\14.0\Bin\MSBuild.exe" - [string]$winBuilder = "${env:ProgramFiles(x86)}\MSBuild\14.0\Bin\MSBuild.exe" - [string]$nuget = "../.nuget/nuget.exe" - [string]$nugetVerbosity = "normal" - [string]$dotnetVerbosity = "Information" - - if ( !( Test-Path( "$winBuilder" ) ) ) - { - $winBuilder = "${env:ProgramFiles}\MSBuild\14.0\Bin\MSBuild.exe" - } - if ( !( Test-Path( "$winBuilder" ) ) ) - { - Write-Error "MSBuild v14 is required." - exit 1 - } - - if ( !( Test-Path( "${env:ProgramFiles}\dotnet\dotnet.exe" ) ) ) - { - Write-Error "DotNet CLI is required." - exit 1 - } } [string]$buildConfig = 'Release' @@ -62,7 +63,6 @@ if ( ![String]::IsNullOrWhitespace( $env:CONFIGURATION ) ) [string]$slnCompat = '../MsgPack.compats.sln' [string]$slnWindows = '../MsgPack.Windows.sln' [string]$slnXamarin = '../MsgPack.Xamarin.sln' -[string]$projCoreClr = "../src/Msgpack.CoreClr" $buildOptions = @( '/v:minimal' ) if( $Rebuild ) @@ -71,6 +71,7 @@ if( $Rebuild ) } $buildOptions += "/p:Configuration=${buildConfig}" +$restoreOptions = "/v:minimal" # Unity if ( !( Test-Path "./MsgPack-CLI" ) ) @@ -102,96 +103,53 @@ if ( !( Test-Path "./MsgPack-CLI/mpu" ) ) } # build -& $nuget restore $sln -Verbosity $nugetVerbosity +& $msbuild /t:restore $sln $restoreOptions if ( $LastExitCode -ne 0 ) { Write-Error "Failed to restore $sln" exit $LastExitCode } -& $builder $sln $buildOptions +& $msbuild $sln $buildOptions if ( $LastExitCode -ne 0 ) { Write-Error "Failed to build $sln" exit $LastExitCode } -& $nuget restore $slnCompat -Verbosity $nugetVerbosity +& $msbuild /t:restore $slnCompat $restoreOptions if ( $LastExitCode -ne 0 ) { Write-Error "Failed to restore $slnCompat" exit $LastExitCode } -& $builder $slnCompat $buildOptions +& $msbuild $slnCompat $buildOptions if ( $LastExitCode -ne 0 ) { Write-Error "Failed to build $slnCompat" exit $LastExitCode } -& $nuget restore $slnWindows -Verbosity $nugetVerbosity +& $msbuild /t:restore $slnWindows $restoreOptions if ( $LastExitCode -ne 0 ) { Write-Error "Failed to restore $slnWindows" exit $LastExitCode } -& $winBuilder $slnWindows $buildOptions +& $msbuild $slnWindows $buildOptions if ( $LastExitCode -ne 0 ) { Write-Error "Failed to build $slnWindows" exit $LastExitCode } -& $nuget restore $slnXamarin -Verbosity $nugetVerbosity -if ( $LastExitCode -ne 0 ) -{ - Write-Error "Failed to restore $slnXamarin" - exit $LastExitCode -} - -& $builder $slnXamarin $buildOptions -if ( $LastExitCode -ne 0 ) -{ - Write-Error "Failed to build $slnXamarin" - exit $LastExitCode -} - -dotnet restore $projCoreClr -if ( $LastExitCode -ne 0 ) -{ - Write-Error "Failed to restore $projNetStandard11" - exit $LastExitCode -} - -$netstandardBaseCommandLine = @("build", "$projCoreClr", "-c", "$buildConfig") -$netstandard1_1CommandLine = $netstandardBaseCommandLine + @("-f", "netstandard1.1") -$netstandard1_3CommandLine = $netstandardBaseCommandLine + @("-f", "netstandard1.3") -if ( $buildConfig -eq 'Release' ) -{ - $netstandard1_1CommandLine += @("-o", "../bin/netstandard1.1") - $netstandard1_3CommandLine += @("-o", "../bin/netstandard1.3") -} - -& "dotnet" $netstandard1_1CommandLine -if ( $LastExitCode -ne 0 ) -{ - Write-Error "Failed to build netstd1.1. $netstandard1_1CommandLine" - exit $LastExitCode -} - -& "dotnet" $netstandard1_3CommandLine -if ( $LastExitCode -ne 0 ) -{ - Write-Error "Failed to build netstd1.3. $netstandard1_3CommandLine" - exit $LastExitCode -} - if ( $buildConfig -eq 'Release' ) { - & $nuget pack ../MsgPack.nuspec -Symbols -Version $env:PackageVersion -OutputDirectory ../dist + & $msbuild ../src/MsgPack/MsgPack.csproj /t:pack /p:Configuration=$buildConfig /p:NuspecProperties=version=$env:PackageVersion + Move-Item ../bin/*.nupkg ../dist/ Copy-Item ../bin/* ./MsgPack-CLI/ -Recurse -Exclude @("*.vshost.*") Copy-Item ../tools/mpu/bin/* ./MsgPack-CLI/mpu/ -Recurse -Exclude @("*.vshost.*") [Reflection.Assembly]::LoadWithPartialName( "System.IO.Compression.FileSystem" ) | Out-Null From 1c68e3a9db7ca90ba314d8264ca5962f833cf4e7 Mon Sep 17 00:00:00 2001 From: yfakariya Date: Tue, 2 May 2017 20:49:03 +0900 Subject: [PATCH 11/13] Fix project file for dotnet CLI --- src/MsgPack/MsgPack.csproj | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/MsgPack/MsgPack.csproj b/src/MsgPack/MsgPack.csproj index 8be47adf9..980bf23b1 100644 --- a/src/MsgPack/MsgPack.csproj +++ b/src/MsgPack/MsgPack.csproj @@ -486,7 +486,11 @@ - - - + + + $(MSBuildExtensionsPath) + + + + \ No newline at end of file From dc58f59e5d8be3b03e068671a4cc697b58695c77 Mon Sep 17 00:00:00 2001 From: yfakariya Date: Tue, 2 May 2017 22:37:48 +0900 Subject: [PATCH 12/13] Fix NetStandardProjectBuilder This project now only supports that VS2015's test project will be able to refer netstadanrd1.1/1.3 builds. So, .sh is no longer needed, and then just call dotnet build for only netstd (note that other frameworks causes build error because dotnet CLI does not support .NET 3.5, Xamarin, etc.) --- .../build/NetStandardProjectBuilder.csproj | 2 +- src/netstandard/build/build.cmd | 12 ++++++------ src/netstandard/build/build.sh | 18 ------------------ ...MsgPack.UnitTest.BclExtensions.WinRT.csproj | 4 ++-- .../MsgPack.UnitTest.Uwp.csproj | 11 ++++++----- .../MsgPack.UnitTest.WinRT.WindowsPhone.csproj | 4 ++-- .../MsgPack.UnitTest.WinRT.csproj | 4 ++-- 7 files changed, 19 insertions(+), 36 deletions(-) delete mode 100644 src/netstandard/build/build.sh diff --git a/src/netstandard/build/NetStandardProjectBuilder.csproj b/src/netstandard/build/NetStandardProjectBuilder.csproj index 3f4ebe01c..dae647b65 100644 --- a/src/netstandard/build/NetStandardProjectBuilder.csproj +++ b/src/netstandard/build/NetStandardProjectBuilder.csproj @@ -44,7 +44,7 @@ $(ProjectDir)\build.cmd $(SolutionDir) $(ConfigurationName) - bash $(ProjectDir)/build.sh $(SolutionDir) $(ConfigurationName) + echo This project supports only Windows specific builds.