Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -753,3 +753,17 @@ Release 1.0.0 2018-6-14
* Fix map keys order emitted by asymmetric (serialization only) serializer are inconsistent across platform.
* Fix Unity build does not honor serialization related attributes correctly.
* Fix internal inconsitency between serialization related attributes detection and their parameter retrieval.

Release 1.0.1 2018-09-09

BUG FIXES
* Fix conversion from DateTime[Offset] to Timestamp failure for before Unix epoc. #296

Release 1.1

BUG FIXES
* Fix conversion from DateTime[Offset] to Timestamp failure for before Unix epoc. #296 (port from 1.0.x branch)

NEW FEATURE
* Allow programatically ignoring arbitary members via BindingOptions. Thank you @ShrenikOne #282
* To prevent accidental Timestamp serialization in existing code, SerializationContext.ConfigureClassic(SerializationCompatibilityLevel) and SerializationContext.CreateClassicContext(SerializationCompatibilityLevel) are added. #296
1 change: 1 addition & 0 deletions Sync.Test.json
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,7 @@
"base": "MsgPack.UnitTest.Uwp",
"globs": [
{"type": "include", "path": "../../src/MsgPack/Tuple`n.cs"},
{"type": "remove", "path": "./Assets/**/*.cs"},
{"type": "remove", "path": "../MsgPack.UnitTest/AssertEx.cs"},
{"type": "remove", "path": "../MsgPack.UnitTest/gen/**/*.cs"},
{"type": "include", "path": "../MsgPack.UnitTest/gen35/**/*.cs"},
Expand Down
4 changes: 1 addition & 3 deletions appveyor-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,7 @@ image: Visual Studio 2017
branches:
only:
- master
- 0.7
- 0.8
- 0.9
- /[0-9]+\.[0-9]+(\.[xX])?/
configuration: Release
assembly_info:
patch: true
Expand Down
2 changes: 1 addition & 1 deletion build/Build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ if ( $buildConfig -eq 'Release' )
{
Write-Host "Build NuGet packages..."

& $msbuild ../src/MsgPack/MsgPack.csproj /t:pack /v:minimal /p:Configuration=$buildConfig /p:IncludeSource=true /p:NuspecProperties=version=$env:PackageVersion
& $msbuild ../src/MsgPack/MsgPack.csproj /t:pack /v:minimal /p:Configuration=$buildConfig /p:IncludeSource=true /p:IncludeSymbols=true /p:NuspecProperties=version=$env:PackageVersion

Move-Item ../bin/*.nupkg ../dist/
Copy-Item ../bin/* ./MsgPack-CLI/ -Recurse -Exclude @("*.vshost.*")
Expand Down
9 changes: 6 additions & 3 deletions src/MsgPack.Silverlight.5/MsgPack.Silverlight.5.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,9 @@
<Compile Include="..\MsgPack\Serialization\ReflectionExtensions.ConstructorDelegate.cs">
<Link>Serialization\ReflectionExtensions.ConstructorDelegate.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\CollectionDetailedKind.cs">
<Link>Serialization\CollectionDetailedKind.cs</Link>
</Compile>
Expand Down Expand Up @@ -671,11 +674,11 @@
<Compile Include="..\MsgPack\Serialization\ResolveSerializerEventArgs.cs">
<Link>Serialization\ResolveSerializerEventArgs.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityLevel.cs">
<Link>Serialization\SerializationCompatibilityLevel.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityOptions.cs">
<Link>Serialization\SerializationCompatibilityOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationContext.cs">
<Link>Serialization\SerializationContext.cs</Link>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,9 @@
<Compile Include="..\MsgPack\ReflectionAbstractions.cs">
<Link>ReflectionAbstractions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\CollectionDetailedKind.cs">
<Link>Serialization\CollectionDetailedKind.cs</Link>
</Compile>
Expand Down Expand Up @@ -678,11 +681,11 @@
<Compile Include="..\MsgPack\Serialization\ResolveSerializerEventArgs.cs">
<Link>Serialization\ResolveSerializerEventArgs.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityLevel.cs">
<Link>Serialization\SerializationCompatibilityLevel.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityOptions.cs">
<Link>Serialization\SerializationCompatibilityOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationContext.cs">
<Link>Serialization\SerializationContext.cs</Link>
Expand Down
9 changes: 6 additions & 3 deletions src/MsgPack.Unity.Full/MsgPack.Unity.Full.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,9 @@
<Compile Include="..\MsgPack\Serialization\Tracer.cs">
<Link>Serialization\Tracer.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\CollectionDetailedKind.cs">
<Link>Serialization\CollectionDetailedKind.cs</Link>
</Compile>
Expand Down Expand Up @@ -649,11 +652,11 @@
<Compile Include="..\MsgPack\Serialization\ResolveSerializerEventArgs.cs">
<Link>Serialization\ResolveSerializerEventArgs.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityLevel.cs">
<Link>Serialization\SerializationCompatibilityLevel.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityOptions.cs">
<Link>Serialization\SerializationCompatibilityOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationContext.cs">
<Link>Serialization\SerializationContext.cs</Link>
Expand Down
9 changes: 6 additions & 3 deletions src/MsgPack.Unity/MsgPack.Unity.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -234,13 +234,13 @@
</Compile>
<Compile Include="..\MsgPack\ReflectionAbstractions.cs">
<Link>ReflectionAbstractions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\Tracer.cs">
<Link>Serialization\Tracer.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\CollectionDetailedKind.cs">
<Link>Serialization\CollectionDetailedKind.cs</Link>
</Compile>
Expand Down Expand Up @@ -658,6 +658,9 @@
<Compile Include="..\MsgPack\Serialization\ResolveSerializerEventArgs.cs">
<Link>Serialization\ResolveSerializerEventArgs.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityLevel.cs">
<Link>Serialization\SerializationCompatibilityLevel.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityOptions.cs">
<Link>Serialization\SerializationCompatibilityOptions.cs</Link>
</Compile>
Expand Down
9 changes: 6 additions & 3 deletions src/MsgPack.Uwp/MsgPack.Uwp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,9 @@
<Compile Include="..\MsgPack\ReflectionAbstractions.cs">
<Link>ReflectionAbstractions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\CollectionDetailedKind.cs">
<Link>Serialization\CollectionDetailedKind.cs</Link>
</Compile>
Expand Down Expand Up @@ -721,11 +724,11 @@
<Compile Include="..\MsgPack\Serialization\ResolveSerializerEventArgs.cs">
<Link>Serialization\ResolveSerializerEventArgs.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityLevel.cs">
<Link>Serialization\SerializationCompatibilityLevel.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationCompatibilityOptions.cs">
<Link>Serialization\SerializationCompatibilityOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\BindingOptions.cs">
<Link>Serialization\BindingOptions.cs</Link>
</Compile>
<Compile Include="..\MsgPack\Serialization\SerializationContext.cs">
<Link>Serialization\SerializationContext.cs</Link>
Expand Down
23 changes: 11 additions & 12 deletions src/MsgPack/Serialization/BindingOptions.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
//
#endregion -- License Terms --


using System;
using System.Collections.Generic;
using System.Linq;
Expand All @@ -34,9 +33,9 @@ namespace MsgPack.Serialization
public class BindingOptions
{
/// <summary>
/// Private mapping of types & their member skip list, which needs to ignore as part of serialization.
/// Private mapping of types &amp; their member skip list, which needs to ignore as part of serialization.
/// </summary>
private readonly IDictionary<Type, IEnumerable<string>> typeIgnoringMembersMap = new Dictionary<Type, IEnumerable<string>>();
private readonly IDictionary<Type, IEnumerable<string>> _typeIgnoringMembersMap = new Dictionary<Type, IEnumerable<string>>();

/// <summary>
/// Sets the member skip list for a specific target type.
Expand All @@ -45,15 +44,15 @@ public class BindingOptions
/// <param name="memberSkipList">The member skip list.</param>
public void SetIgnoringMembers( Type targetType, IEnumerable<string> memberSkipList )
{
lock ( this.typeIgnoringMembersMap )
lock ( this._typeIgnoringMembersMap )
{
if ( this.typeIgnoringMembersMap.ContainsKey( targetType ) )
if ( this._typeIgnoringMembersMap.ContainsKey( targetType ) )
{
this.typeIgnoringMembersMap[ targetType ] = memberSkipList;
this._typeIgnoringMembersMap[ targetType ] = memberSkipList;
}
else
{
this.typeIgnoringMembersMap.Add( targetType, memberSkipList );
this._typeIgnoringMembersMap.Add( targetType, memberSkipList );
}
}
}
Expand All @@ -65,11 +64,11 @@ public void SetIgnoringMembers( Type targetType, IEnumerable<string> memberSkipL
/// <returns>Returns member skip list for a specific target type.</returns>
public IEnumerable<string> GetIgnoringMembers( Type targetType )
{
lock ( this.typeIgnoringMembersMap )
lock ( this._typeIgnoringMembersMap )
{
if ( this.typeIgnoringMembersMap.ContainsKey( targetType ) )
if ( this._typeIgnoringMembersMap.ContainsKey( targetType ) )
{
return this.typeIgnoringMembersMap[ targetType ];
return this._typeIgnoringMembersMap[ targetType ];
}
else
{
Expand All @@ -84,9 +83,9 @@ public IEnumerable<string> GetIgnoringMembers( Type targetType )
/// <returns>Returns all registered types specific ignoring members.</returns>
public IDictionary<Type, IEnumerable<string>> GetAllIgnoringMembers()
{
lock ( this.typeIgnoringMembersMap )
lock ( this._typeIgnoringMembersMap )
{
return this.typeIgnoringMembersMap.ToDictionary( item => item.Key, item => ( IEnumerable<string> )item.Value.ToArray() );
return this._typeIgnoringMembersMap.ToDictionary( item => item.Key, item => ( IEnumerable<string> )item.Value.ToArray() );
}
}
}
Expand Down
46 changes: 46 additions & 0 deletions src/MsgPack/Serialization/SerializationCompatibilityLevel.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#region -- License Terms --
//
// MessagePack for CLI
//
// Copyright (C) 2018 FUJIWARA, Yusuke and contributors
//
// 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.
//
// Contributors:
// Samuel Cragg
//
#endregion -- License Terms --

namespace MsgPack.Serialization
{
/// <summary>
/// Represents compatibility level.
/// </summary>
public enum SerializationCompatibilityLevel
{
/// <summary>
/// Use latest feature. Almost backward compatible, but some compatibities are broken.
/// </summary>
Latest = 0,

/// <summary>
/// Compatible for version 0.5.x or former.
/// </summary>
Version0_5,

/// <summary>
/// Compatible for version 0.6.x, 0.7.x, 0.8.x, and 0.9.x.
/// </summary>
Version0_9
}
}
Loading