Skip to content

Commit 1aec1b6

Browse files
committed
Update to 0.2.0 for vulnerability fixes; move to .NET Standard 2.0 and latest Newtonsoft.Json.
1 parent dfa4cd4 commit 1aec1b6

File tree

5 files changed

+45
-37
lines changed

5 files changed

+45
-37
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>netstandard1.4</TargetFramework>
4+
<TargetFramework>netstandard2.0</TargetFramework>
55
<SignAssembly>true</SignAssembly>
66
<AssemblyOriginatorKeyFile>arkane.snk</AssemblyOriginatorKeyFile>
7-
<Version>0.1.0</Version>
7+
<Version>0.2.0</Version>
88
<Authors>Alistair J. R. Young</Authors>
99
<Company>Arkane Systems</Company>
1010
<Description>Newtonsoft.JSON converter making it possible to round-trip type-safe ExpandoObjects.</Description>
11-
<PackageLicenseUrl>https://github.com/arkane-systems/json-expandoobject/blob/master/LICENSE</PackageLicenseUrl>
1211
<PackageProjectUrl>https://github.com/arkane-systems/json-expandoobject/</PackageProjectUrl>
1312
<RepositoryUrl>https://github.com/arkane-systems/json-expandoobject/</RepositoryUrl>
1413
<RepositoryType>GitHub</RepositoryType>
1514
<PackageTags>json json.net dynamic</PackageTags>
1615
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
1716
<RootNamespace>ArkaneSystems.Json.Expandos</RootNamespace>
17+
<PackageLicenseExpression>MIT</PackageLicenseExpression>
1818
</PropertyGroup>
1919

2020
<ItemGroup>
21-
<PackageReference Include="JetBrains.Annotations" Version="11.0.0" />
22-
<PackageReference Include="Newtonsoft.Json" Version="10.0.3" />
21+
<PackageReference Include="JetBrains.Annotations" Version="2022.3.1" />
22+
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
2323
</ItemGroup>
2424

2525
</Project>

Arkane.Json.Expandos/JsonSerializationExceptionHelper.cs

+5-4
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
// Alistair J. R. Young
66
// Arkane Systems
77
//
8-
// Copyright Arkane Systems 2012-2017. All rights reserved.
8+
// Copyright Arkane Systems 2012-2023. All rights reserved.
99
//
10-
// Created: 2017-08-17 5:21 PM
10+
// Created: 2023-05-10 12:40 AM
1111

1212
#endregion
1313

@@ -32,15 +32,16 @@ public static JsonSerializationException Create ([CanBeNull] this JsonReader rea
3232
// Adapted from https://github.com/JamesNK/Newtonsoft.Json/blob/master/Src/Newtonsoft.Json/JsonPosition.cs
3333

3434
var lineInfo = reader as IJsonLineInfo ;
35-
string path = reader?.Path ;
36-
string message = string.Format (CultureInfo.InvariantCulture, format, args) ;
35+
var path = reader?.Path ;
36+
var message = string.Format (CultureInfo.InvariantCulture, format, args) ;
3737
if (!message.EndsWith (Environment.NewLine, StringComparison.Ordinal))
3838
{
3939
message = message.Trim () ;
4040
if (!message.EndsWith (".", StringComparison.Ordinal))
4141
message += "." ;
4242
message += " " ;
4343
}
44+
4445
message += string.Format (CultureInfo.InvariantCulture, "Path '{0}'", path) ;
4546
if (lineInfo?.HasLineInfo () == true)
4647
message += string.Format (CultureInfo.InvariantCulture,

Arkane.Json.Expandos/TypeSafeExpandoObjectConverter.cs

+19-13
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
// Alistair J. R. Young
66
// Arkane Systems
77
//
8-
// Copyright Arkane Systems 2012-2017. All rights reserved.
8+
// Copyright Arkane Systems 2012-2023. All rights reserved.
99
//
10-
// Created: 2017-08-17 5:09 PM
10+
// Created: 2023-05-10 12:40 AM
1111

1212
#endregion
1313

@@ -52,7 +52,7 @@ private object ReadValue ([NotNull] JsonReader reader, JsonSerializer serializer
5252
if (reader.TokenType.IsPrimitiveToken ())
5353
return reader.Value ;
5454

55-
throw reader.Create (string.Format ("Unexpected token when converting ExpandoObject: {0}", reader.TokenType)) ;
55+
throw reader.Create ($"Unexpected token when converting ExpandoObject: {reader.TokenType}") ;
5656
}
5757
}
5858

@@ -68,7 +68,7 @@ private object ReadList ([NotNull] JsonReader reader, JsonSerializer serializer)
6868
case JsonToken.Comment:
6969
break ;
7070
default:
71-
object v = this.ReadValue (reader, serializer) ;
71+
var v = this.ReadValue (reader, serializer) ;
7272

7373
list.Add (v) ;
7474
break ;
@@ -84,25 +84,28 @@ private object ReadObject (JsonReader reader, [NotNull] JsonSerializer serialize
8484
{
8585
if (serializer.TypeNameHandling != TypeNameHandling.None)
8686
{
87-
JObject obj = JObject.Load (reader) ;
87+
var obj = JObject.Load (reader) ;
8888

89-
Type polymorphicType = null ;
90-
var polymorphicTypeString = (string) obj["$type"] ;
89+
Type polymorphicType = null ;
90+
var polymorphicTypeString = (string) obj["$type"] ;
9191
if (polymorphicTypeString != null)
9292
{
9393
if (serializer.TypeNameHandling != TypeNameHandling.None)
9494
{
95-
ReflectionUtils.SplitFullyQualifiedTypeName(polymorphicTypeString, out var typeName, out var assemblyName);
95+
ReflectionUtils.SplitFullyQualifiedTypeName (polymorphicTypeString,
96+
out var typeName,
97+
out var assemblyName) ;
9698
polymorphicType = serializer.SerializationBinder.BindToType (assemblyName, typeName) ;
9799
}
100+
98101
obj.Remove ("$type") ;
99102
}
100103

101104
if ((polymorphicType == null) || (polymorphicType == typeof (ExpandoObject)))
102-
using (JsonReader subReader = obj.CreateReader ())
105+
using (var subReader = obj.CreateReader ())
103106
return this.ReadExpandoObject (subReader, serializer) ;
104107
else
105-
using (JsonReader subReader = obj.CreateReader ())
108+
using (var subReader = obj.CreateReader ())
106109
return serializer.Deserialize (subReader, polymorphicType) ;
107110
}
108111

@@ -118,12 +121,12 @@ private object ReadExpandoObject ([NotNull] JsonReader reader, JsonSerializer se
118121
switch (reader.TokenType)
119122
{
120123
case JsonToken.PropertyName:
121-
string propertyName = reader.Value.ToString () ;
124+
var propertyName = reader.Value.ToString () ;
122125

123126
if (!reader.Read ())
124127
throw reader.Create ("Unexpected end when reading ExpandoObject.") ;
125128

126-
object v = this.ReadValue (reader, serializer) ;
129+
var v = this.ReadValue (reader, serializer) ;
127130

128131
expandoObject[propertyName] = v ;
129132
break ;
@@ -147,7 +150,10 @@ public override void WriteJson (JsonWriter writer, object value, JsonSerializer
147150
}
148151

149152
/// <inheritdoc />
150-
public override object ReadJson ([NotNull] JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) =>
153+
public override object ReadJson ([NotNull] JsonReader reader,
154+
Type objectType,
155+
object existingValue,
156+
JsonSerializer serializer) =>
151157
this.ReadValue (reader, serializer) ;
152158

153159
/// <inheritdoc />

ExpandosTests/ExpandosTests.csproj

+13-12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3-
<Import Project="..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props')" />
3+
<Import Project="..\packages\MSTest.TestAdapter.3.0.2\build\net462\MSTest.TestAdapter.props" Condition="Exists('..\packages\MSTest.TestAdapter.3.0.2\build\net462\MSTest.TestAdapter.props')" />
44
<PropertyGroup>
55
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
66
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -9,7 +9,7 @@
99
<AppDesignerFolder>Properties</AppDesignerFolder>
1010
<RootNamespace>ExpandosTests</RootNamespace>
1111
<AssemblyName>ExpandosTests</AssemblyName>
12-
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
12+
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
1313
<FileAlignment>512</FileAlignment>
1414
<ProjectTypeGuids>{3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
1515
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">15.0</VisualStudioVersion>
@@ -19,6 +19,7 @@
1919
<TestProjectType>UnitTest</TestProjectType>
2020
<NuGetPackageImportStamp>
2121
</NuGetPackageImportStamp>
22+
<TargetFrameworkProfile />
2223
</PropertyGroup>
2324
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2425
<DebugSymbols>true</DebugSymbols>
@@ -39,13 +40,13 @@
3940
</PropertyGroup>
4041
<ItemGroup>
4142
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
42-
<HintPath>..\packages\MSTest.TestFramework.1.1.18\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
43+
<HintPath>..\packages\MSTest.TestFramework.3.0.2\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
4344
</Reference>
4445
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
45-
<HintPath>..\packages\MSTest.TestFramework.1.1.18\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
46+
<HintPath>..\packages\MSTest.TestFramework.3.0.2\lib\net462\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll</HintPath>
4647
</Reference>
47-
<Reference Include="Newtonsoft.Json, Version=10.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
48-
<HintPath>..\packages\Newtonsoft.Json.10.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
48+
<Reference Include="Newtonsoft.Json, Version=13.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
49+
<HintPath>..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
4950
</Reference>
5051
<Reference Include="System" />
5152
<Reference Include="System.Core" />
@@ -56,23 +57,23 @@
5657
<Compile Include="Models.cs" />
5758
<Compile Include="Properties\AssemblyInfo.cs" />
5859
</ItemGroup>
59-
<ItemGroup>
60-
<None Include="packages.config" />
61-
</ItemGroup>
6260
<ItemGroup>
6361
<ProjectReference Include="..\Arkane.Json.Expandos\Arkane.Json.Expandos.csproj">
6462
<Project>{4FA5DD5B-DF6D-4F7A-B510-F25025859429}</Project>
6563
<Name>Arkane.Json.Expandos</Name>
6664
</ProjectReference>
6765
</ItemGroup>
66+
<ItemGroup>
67+
<None Include="packages.config" />
68+
</ItemGroup>
6869
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition="Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
6970
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
7071
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
7172
<PropertyGroup>
7273
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
7374
</PropertyGroup>
74-
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.props'))" />
75-
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.targets'))" />
75+
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.3.0.2\build\net462\MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.3.0.2\build\net462\MSTest.TestAdapter.props'))" />
76+
<Error Condition="!Exists('..\packages\MSTest.TestAdapter.3.0.2\build\net462\MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\MSTest.TestAdapter.3.0.2\build\net462\MSTest.TestAdapter.targets'))" />
7677
</Target>
77-
<Import Project="..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.1.1.18\build\net45\MSTest.TestAdapter.targets')" />
78+
<Import Project="..\packages\MSTest.TestAdapter.3.0.2\build\net462\MSTest.TestAdapter.targets" Condition="Exists('..\packages\MSTest.TestAdapter.3.0.2\build\net462\MSTest.TestAdapter.targets')" />
7879
</Project>

ExpandosTests/packages.config

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<packages>
3-
<package id="MSTest.TestAdapter" version="1.1.18" targetFramework="net461" />
4-
<package id="MSTest.TestFramework" version="1.1.18" targetFramework="net461" />
5-
<package id="Newtonsoft.Json" version="10.0.3" targetFramework="net461" />
3+
<package id="MSTest.TestAdapter" version="3.0.2" targetFramework="net48" />
4+
<package id="MSTest.TestFramework" version="3.0.2" targetFramework="net48" />
5+
<package id="Newtonsoft.Json" version="13.0.3" targetFramework="net48" />
66
</packages>

0 commit comments

Comments
 (0)