diff --git a/src/NSwag.AspNet.Owin/NSwag.AspNet.Owin.csproj b/src/NSwag.AspNet.Owin/NSwag.AspNet.Owin.csproj
index 2d0fdfaa26..e289fc7aac 100644
--- a/src/NSwag.AspNet.Owin/NSwag.AspNet.Owin.csproj
+++ b/src/NSwag.AspNet.Owin/NSwag.AspNet.Owin.csproj
@@ -39,7 +39,7 @@
-
+
diff --git a/src/NSwag.AspNet.WebApi/NSwag.AspNet.WebApi.csproj b/src/NSwag.AspNet.WebApi/NSwag.AspNet.WebApi.csproj
index bf5419c127..ec0893e03e 100644
--- a/src/NSwag.AspNet.WebApi/NSwag.AspNet.WebApi.csproj
+++ b/src/NSwag.AspNet.WebApi/NSwag.AspNet.WebApi.csproj
@@ -21,7 +21,7 @@
TRACE;DEBUG;NET45
-
+
diff --git a/src/NSwag.AssemblyLoader/NSwag.AssemblyLoader.csproj b/src/NSwag.AssemblyLoader/NSwag.AssemblyLoader.csproj
index 6c340d2b13..513304e662 100644
--- a/src/NSwag.AssemblyLoader/NSwag.AssemblyLoader.csproj
+++ b/src/NSwag.AssemblyLoader/NSwag.AssemblyLoader.csproj
@@ -24,7 +24,7 @@
TRACE;RELEASE;FullNet;NET451
-
+
diff --git a/src/NSwag.CodeGeneration.CSharp.Tests/NSwag.CodeGeneration.CSharp.Tests.csproj b/src/NSwag.CodeGeneration.CSharp.Tests/NSwag.CodeGeneration.CSharp.Tests.csproj
index 8804f474b2..138701c4f5 100644
--- a/src/NSwag.CodeGeneration.CSharp.Tests/NSwag.CodeGeneration.CSharp.Tests.csproj
+++ b/src/NSwag.CodeGeneration.CSharp.Tests/NSwag.CodeGeneration.CSharp.Tests.csproj
@@ -40,8 +40,8 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
diff --git a/src/NSwag.CodeGeneration.CSharp.Tests/packages.config b/src/NSwag.CodeGeneration.CSharp.Tests/packages.config
index 5d33ffde8d..64e42dd6e7 100644
--- a/src/NSwag.CodeGeneration.CSharp.Tests/packages.config
+++ b/src/NSwag.CodeGeneration.CSharp.Tests/packages.config
@@ -4,5 +4,5 @@
-
+
\ No newline at end of file
diff --git a/src/NSwag.CodeGeneration.CSharp/NSwag.CodeGeneration.CSharp.csproj b/src/NSwag.CodeGeneration.CSharp/NSwag.CodeGeneration.CSharp.csproj
index 2426a42763..512141925b 100644
--- a/src/NSwag.CodeGeneration.CSharp/NSwag.CodeGeneration.CSharp.csproj
+++ b/src/NSwag.CodeGeneration.CSharp/NSwag.CodeGeneration.CSharp.csproj
@@ -35,7 +35,7 @@
-
+
diff --git a/src/NSwag.CodeGeneration.Tests/NSwag.CodeGeneration.Tests.csproj b/src/NSwag.CodeGeneration.Tests/NSwag.CodeGeneration.Tests.csproj
index 6f583e4766..e3583e1793 100644
--- a/src/NSwag.CodeGeneration.Tests/NSwag.CodeGeneration.Tests.csproj
+++ b/src/NSwag.CodeGeneration.Tests/NSwag.CodeGeneration.Tests.csproj
@@ -75,17 +75,17 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
-
- ..\packages\NJsonSchema.CodeGeneration.9.10.30\lib\net451\NJsonSchema.CodeGeneration.dll
+
+ ..\packages\NJsonSchema.CodeGeneration.9.10.31\lib\net451\NJsonSchema.CodeGeneration.dll
-
- ..\packages\NJsonSchema.CodeGeneration.CSharp.9.10.30\lib\net451\NJsonSchema.CodeGeneration.CSharp.dll
+
+ ..\packages\NJsonSchema.CodeGeneration.CSharp.9.10.31\lib\net451\NJsonSchema.CodeGeneration.CSharp.dll
-
- ..\packages\NJsonSchema.CodeGeneration.TypeScript.9.10.30\lib\net451\NJsonSchema.CodeGeneration.TypeScript.dll
+
+ ..\packages\NJsonSchema.CodeGeneration.TypeScript.9.10.31\lib\net451\NJsonSchema.CodeGeneration.TypeScript.dll
..\packages\Swashbuckle.Core.5.5.3\lib\net40\Swashbuckle.Core.dll
diff --git a/src/NSwag.CodeGeneration.Tests/packages.config b/src/NSwag.CodeGeneration.Tests/packages.config
index c1f390f536..b685772a0e 100644
--- a/src/NSwag.CodeGeneration.Tests/packages.config
+++ b/src/NSwag.CodeGeneration.Tests/packages.config
@@ -13,10 +13,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/NSwag.CodeGeneration.TypeScript.Tests/NSwag.CodeGeneration.TypeScript.Tests.csproj b/src/NSwag.CodeGeneration.TypeScript.Tests/NSwag.CodeGeneration.TypeScript.Tests.csproj
index bb174afc6b..08b0e7f345 100644
--- a/src/NSwag.CodeGeneration.TypeScript.Tests/NSwag.CodeGeneration.TypeScript.Tests.csproj
+++ b/src/NSwag.CodeGeneration.TypeScript.Tests/NSwag.CodeGeneration.TypeScript.Tests.csproj
@@ -46,14 +46,14 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
-
- ..\packages\NJsonSchema.CodeGeneration.9.10.30\lib\net451\NJsonSchema.CodeGeneration.dll
+
+ ..\packages\NJsonSchema.CodeGeneration.9.10.31\lib\net451\NJsonSchema.CodeGeneration.dll
-
- ..\packages\NJsonSchema.CodeGeneration.TypeScript.9.10.30\lib\net451\NJsonSchema.CodeGeneration.TypeScript.dll
+
+ ..\packages\NJsonSchema.CodeGeneration.TypeScript.9.10.31\lib\net451\NJsonSchema.CodeGeneration.TypeScript.dll
diff --git a/src/NSwag.CodeGeneration.TypeScript.Tests/packages.config b/src/NSwag.CodeGeneration.TypeScript.Tests/packages.config
index 62a14cc43d..3e6fe3d9e9 100644
--- a/src/NSwag.CodeGeneration.TypeScript.Tests/packages.config
+++ b/src/NSwag.CodeGeneration.TypeScript.Tests/packages.config
@@ -9,9 +9,9 @@
-
-
-
+
+
+
diff --git a/src/NSwag.CodeGeneration.TypeScript/NSwag.CodeGeneration.TypeScript.csproj b/src/NSwag.CodeGeneration.TypeScript/NSwag.CodeGeneration.TypeScript.csproj
index 0859dcdcea..f94beeb25e 100644
--- a/src/NSwag.CodeGeneration.TypeScript/NSwag.CodeGeneration.TypeScript.csproj
+++ b/src/NSwag.CodeGeneration.TypeScript/NSwag.CodeGeneration.TypeScript.csproj
@@ -36,7 +36,7 @@
-
+
diff --git a/src/NSwag.CodeGeneration/NSwag.CodeGeneration.csproj b/src/NSwag.CodeGeneration/NSwag.CodeGeneration.csproj
index bea526b1c9..632ee7da39 100644
--- a/src/NSwag.CodeGeneration/NSwag.CodeGeneration.csproj
+++ b/src/NSwag.CodeGeneration/NSwag.CodeGeneration.csproj
@@ -19,8 +19,8 @@
-
-
+
+
diff --git a/src/NSwag.Commands/NSwag.Commands.csproj b/src/NSwag.Commands/NSwag.Commands.csproj
index feebc87ee6..33b7c4ec8b 100644
--- a/src/NSwag.Commands/NSwag.Commands.csproj
+++ b/src/NSwag.Commands/NSwag.Commands.csproj
@@ -33,10 +33,10 @@
-
-
-
-
+
+
+
+
diff --git a/src/NSwag.Core.Tests/ComponentsSerializationTests.cs b/src/NSwag.Core.Tests/ComponentsSerializationTests.cs
new file mode 100644
index 0000000000..8deab89af0
--- /dev/null
+++ b/src/NSwag.Core.Tests/ComponentsSerializationTests.cs
@@ -0,0 +1,67 @@
+using System;
+using System.Threading.Tasks;
+using NJsonSchema;
+using Xunit;
+
+namespace NSwag.Core.Tests
+{
+ public class ComponentsSerializationTests
+ {
+ [Fact]
+ public async Task When_schema_is_added_to_definitions_then_it_is_serialized_correctly_in_Swagger()
+ {
+ //// Arrange
+ var document = CreateDocument();
+
+ //// Act
+ var json = document.ToJson(SchemaType.Swagger2);
+ document = await SwaggerDocument.FromJsonAsync(json, schemaType: SchemaType.OpenApi3);
+
+ //// Assert
+ Assert.Contains("definitions", json);
+ Assert.DoesNotContain("components", json);
+
+ Assert.True(document.Definitions.ContainsKey("Foo"));
+ }
+
+ [Fact]
+ public async Task When_schema_is_added_to_definitions_then_it_is_serialized_correctly_in_OpenApi()
+ {
+ //// Arrange
+ var document = CreateDocument();
+
+ //// Act
+ var json = document.ToJson(SchemaType.OpenApi3);
+ document = await SwaggerDocument.FromJsonAsync(json, schemaType: SchemaType.OpenApi3);
+
+ //// Assert
+ Assert.Contains("components", json);
+ Assert.Contains("schemas", json);
+ Assert.DoesNotContain("#/definitions/Foo", json);
+ Assert.DoesNotContain("definitions", json);
+
+ Assert.True(document.Definitions.ContainsKey("Foo"));
+ }
+
+ private static SwaggerDocument CreateDocument()
+ {
+ var schema = new JsonSchema4
+ {
+ Type = JsonObjectType.String
+ };
+
+ var document = new SwaggerDocument();
+ document.Definitions["Foo"] = schema;
+ document.Definitions["Bar"] = new JsonSchema4
+ {
+ Type = JsonObjectType.Object,
+ Properties =
+ {
+ { "Foo", new JsonProperty { Reference = schema } }
+ }
+ };
+
+ return document;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/NSwag.Core.Tests/NSwag.Core.Tests.csproj b/src/NSwag.Core.Tests/NSwag.Core.Tests.csproj
new file mode 100644
index 0000000000..e48df58c37
--- /dev/null
+++ b/src/NSwag.Core.Tests/NSwag.Core.Tests.csproj
@@ -0,0 +1,20 @@
+
+
+
+ netcoreapp2.0
+
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/NSwag.Core/NSwag.Core.csproj b/src/NSwag.Core/NSwag.Core.csproj
index 741145370f..37ec7b0136 100644
--- a/src/NSwag.Core/NSwag.Core.csproj
+++ b/src/NSwag.Core/NSwag.Core.csproj
@@ -23,7 +23,7 @@
-
+
diff --git a/src/NSwag.Core/SwaggerComponents.cs b/src/NSwag.Core/SwaggerComponents.cs
new file mode 100644
index 0000000000..1061492eb4
--- /dev/null
+++ b/src/NSwag.Core/SwaggerComponents.cs
@@ -0,0 +1,58 @@
+using System.Collections.Generic;
+using Newtonsoft.Json;
+using NJsonSchema;
+using NSwag.Collections;
+
+namespace NSwag
+{
+ /// Container for reusable components (OpenAPI only).
+ public class SwaggerComponents
+ {
+ ///
+ ///
+ public SwaggerComponents(SwaggerDocument document)
+ {
+ SecuritySchemes = new Dictionary();
+
+ var definitions = new ObservableDictionary();
+ definitions.CollectionChanged += (sender, args) =>
+ {
+ foreach (var path in Schemas.Values)
+ path.Parent = document;
+ };
+ Schemas = definitions;
+
+ var parameters = new ObservableDictionary();
+ parameters.CollectionChanged += (sender, args) =>
+ {
+ foreach (var path in Parameters.Values)
+ path.Parent = document;
+ };
+ Parameters = parameters;
+
+ var responses = new ObservableDictionary();
+ responses.CollectionChanged += (sender, args) =>
+ {
+ foreach (var path in Responses.Values)
+ path.Parent = document;
+ };
+ Responses = responses;
+ }
+
+ /// Gets or sets the types.
+ [JsonProperty(PropertyName = "schemas", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public IDictionary Schemas { get; }
+
+ /// Gets or sets the parameters which can be used for all operations.
+ [JsonProperty(PropertyName = "parameters", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public IDictionary Parameters { get; }
+
+ /// Gets or sets the responses which can be used for all operations.
+ [JsonProperty(PropertyName = "responses", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public IDictionary Responses { get; }
+
+ /// Gets or sets the security definitions.
+ [JsonProperty(PropertyName = "securitySchemes", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public Dictionary SecuritySchemes { get; }
+ }
+}
\ No newline at end of file
diff --git a/src/NSwag.Core/SwaggerDocument.Serialization.cs b/src/NSwag.Core/SwaggerDocument.Serialization.cs
new file mode 100644
index 0000000000..32ee508ce9
--- /dev/null
+++ b/src/NSwag.Core/SwaggerDocument.Serialization.cs
@@ -0,0 +1,35 @@
+using NJsonSchema;
+using NJsonSchema.Infrastructure;
+
+namespace NSwag
+{
+ public partial class SwaggerDocument
+ {
+ /// Creates the serializer contract resolver based on the .
+ /// The schema type.
+ /// The settings.
+ public static PropertyRenameAndIgnoreSerializerContractResolver CreateJsonSerializerContractResolver(SchemaType schemaType)
+ {
+ var resolver = JsonSchema4.CreateJsonSerializerContractResolver(schemaType);
+
+ if (schemaType == SchemaType.OpenApi3)
+ {
+ resolver.IgnoreProperty(typeof(SwaggerDocument), "swagger");
+
+ resolver.IgnoreProperty(typeof(SwaggerDocument), "definitions");
+ resolver.IgnoreProperty(typeof(SwaggerDocument), "parameters");
+ resolver.IgnoreProperty(typeof(SwaggerDocument), "responses");
+ resolver.IgnoreProperty(typeof(SwaggerDocument), "securityDefinitions");
+ }
+ else if (schemaType == SchemaType.Swagger2)
+ {
+ resolver.IgnoreProperty(typeof(SwaggerDocument), "openapi");
+ resolver.IgnoreProperty(typeof(SwaggerParameter), "title");
+
+ resolver.IgnoreProperty(typeof(SwaggerDocument), "components");
+ }
+
+ return resolver;
+ }
+ }
+}
diff --git a/src/NSwag.Core/SwaggerDocument.cs b/src/NSwag.Core/SwaggerDocument.cs
index b2aac2c29c..7969125f04 100644
--- a/src/NSwag.Core/SwaggerDocument.cs
+++ b/src/NSwag.Core/SwaggerDocument.cs
@@ -20,7 +20,7 @@
namespace NSwag
{
/// Describes a JSON web service.
- public class SwaggerDocument : JsonExtensionObject, IDocumentPathProvider
+ public partial class SwaggerDocument : JsonExtensionObject, IDocumentPathProvider
{
/// Initializes a new instance of the class.
public SwaggerDocument()
@@ -30,20 +30,8 @@ public SwaggerDocument()
Info = new SwaggerInfo();
Schemes = new List();
- SecurityDefinitions = new Dictionary();
- Info = new SwaggerInfo
- {
- Version = string.Empty,
- Title = string.Empty
- };
- var definitions = new ObservableDictionary();
- definitions.CollectionChanged += (sender, args) =>
- {
- foreach (var path in Definitions.Values)
- path.Parent = this;
- };
- Definitions = definitions;
+ Components = new SwaggerComponents(this);
var paths = new ObservableDictionary();
paths.CollectionChanged += (sender, args) =>
@@ -53,21 +41,11 @@ public SwaggerDocument()
};
Paths = paths;
- var parameters = new ObservableDictionary();
- parameters.CollectionChanged += (sender, args) =>
- {
- foreach (var path in Parameters.Values)
- path.Parent = this;
- };
- Parameters = parameters;
-
- var responses = new ObservableDictionary();
- responses.CollectionChanged += (sender, args) =>
+ Info = new SwaggerInfo
{
- foreach (var path in Responses.Values)
- path.Parent = this;
+ Version = string.Empty,
+ Title = string.Empty
};
- Responses = responses;
}
/// Gets the NSwag toolchain version.
@@ -116,22 +94,28 @@ public SwaggerDocument()
/// Gets or sets the operations.
[JsonProperty(PropertyName = "paths", DefaultValueHandling = DefaultValueHandling.Ignore)]
public IDictionary Paths { get; }
+
- /// Gets or sets the types.
+ /// Gets or sets the types (Swagger only).
[JsonProperty(PropertyName = "definitions", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public IDictionary Definitions { get; }
+ public IDictionary Definitions => Components.Schemas;
- /// Gets or sets the parameters which can be used for all operations.
+ /// Gets or sets the parameters which can be used for all operations (Swagger only).
[JsonProperty(PropertyName = "parameters", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public IDictionary Parameters { get; }
+ public IDictionary Parameters => Components.Parameters;
- /// Gets or sets the responses which can be used for all operations.
+ /// Gets or sets the responses which can be used for all operations (Swagger only).
[JsonProperty(PropertyName = "responses", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public IDictionary Responses { get; }
+ public IDictionary Responses => Components.Responses;
- /// Gets or sets the security definitions.
+ /// Gets or sets the security definitions (Swagger only).
[JsonProperty(PropertyName = "securityDefinitions", DefaultValueHandling = DefaultValueHandling.Ignore)]
- public Dictionary SecurityDefinitions { get; }
+ public Dictionary SecurityDefinitions => Components.SecuritySchemes;
+
+ /// Gets or sets the components.
+ [JsonProperty(PropertyName = "components", DefaultValueHandling = DefaultValueHandling.Ignore)]
+ public SwaggerComponents Components { get; }
+
/// Gets or sets a security description.
[JsonProperty(PropertyName = "security", DefaultValueHandling = DefaultValueHandling.Ignore)]
@@ -173,16 +157,17 @@ public string ToJson()
/// The JSON string.
public string ToJson(SchemaType schemaType)
{
+ var contractResolver = CreateJsonSerializerContractResolver(schemaType);
var serializerSettings = new JsonSerializerSettings
{
PreserveReferencesHandling = PreserveReferencesHandling.None,
Formatting = Formatting.Indented,
- ContractResolver = CreateJsonSerializerContractResolver(schemaType)
+ ContractResolver = contractResolver
};
GenerateOperationIds();
- JsonSchemaReferenceUtilities.UpdateSchemaReferencePaths(this);
+ JsonSchemaReferenceUtilities.UpdateSchemaReferencePaths(this, false, contractResolver);
return JsonSchemaReferenceUtilities.ConvertPropertyReferences(JsonConvert.SerializeObject(this, serializerSettings));
}
@@ -195,13 +180,14 @@ public static async Task FromJsonAsync(string data, string docu
{
data = JsonSchemaReferenceUtilities.ConvertJsonReferences(data);
+ var contractResolver = CreateJsonSerializerContractResolver(schemaType);
var document = JsonConvert.DeserializeObject(data, new JsonSerializerSettings
{
MetadataPropertyHandling = MetadataPropertyHandling.Ignore,
ConstructorHandling = ConstructorHandling.Default,
ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
PreserveReferencesHandling = PreserveReferencesHandling.Objects,
- ContractResolver = CreateJsonSerializerContractResolver(schemaType)
+ ContractResolver = contractResolver
});
document.DocumentPath = documentPath;
@@ -212,26 +198,6 @@ public static async Task FromJsonAsync(string data, string docu
return document;
}
- /// Creates the serializer contract resolver based on the .
- /// The schema type.
- /// The settings.
- public static PropertyRenameAndIgnoreSerializerContractResolver CreateJsonSerializerContractResolver(SchemaType schemaType)
- {
- var resolver = JsonSchema4.CreateJsonSerializerContractResolver(schemaType);
-
- if (schemaType == SchemaType.OpenApi3)
- {
- resolver.IgnoreProperty(typeof(SwaggerDocument), "swagger");
- }
- else if (schemaType == SchemaType.Swagger2)
- {
- resolver.IgnoreProperty(typeof(SwaggerParameter), "title");
- resolver.IgnoreProperty(typeof(SwaggerDocument), "openapi");
- }
-
- return resolver;
- }
-
/// Creates a Swagger specification from a JSON file.
/// The file path.
/// The .
diff --git a/src/NSwag.Demo.Web/NSwag.Demo.Web.csproj b/src/NSwag.Demo.Web/NSwag.Demo.Web.csproj
index 615a6859ec..185d467295 100644
--- a/src/NSwag.Demo.Web/NSwag.Demo.Web.csproj
+++ b/src/NSwag.Demo.Web/NSwag.Demo.Web.csproj
@@ -67,8 +67,8 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
..\packages\Owin.1.0\lib\net40\Owin.dll
diff --git a/src/NSwag.Demo.Web/packages.config b/src/NSwag.Demo.Web/packages.config
index 01afc39560..7becb1980d 100644
--- a/src/NSwag.Demo.Web/packages.config
+++ b/src/NSwag.Demo.Web/packages.config
@@ -15,6 +15,6 @@
-
+
\ No newline at end of file
diff --git a/src/NSwag.Integration.WebAPI/NSwag.Integration.WebAPI.csproj b/src/NSwag.Integration.WebAPI/NSwag.Integration.WebAPI.csproj
index 9db0f13d4e..f378e5b774 100644
--- a/src/NSwag.Integration.WebAPI/NSwag.Integration.WebAPI.csproj
+++ b/src/NSwag.Integration.WebAPI/NSwag.Integration.WebAPI.csproj
@@ -62,8 +62,8 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
..\packages\Owin.1.0\lib\net40\Owin.dll
diff --git a/src/NSwag.Integration.WebAPI/packages.config b/src/NSwag.Integration.WebAPI/packages.config
index 2e77c52e54..8a1893c18f 100644
--- a/src/NSwag.Integration.WebAPI/packages.config
+++ b/src/NSwag.Integration.WebAPI/packages.config
@@ -10,6 +10,6 @@
-
+
\ No newline at end of file
diff --git a/src/NSwag.Min.sln b/src/NSwag.Min.sln
index 9f241592d5..db9b21aa9d 100644
--- a/src/NSwag.Min.sln
+++ b/src/NSwag.Min.sln
@@ -61,6 +61,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NSwag.Sample.NETCore20", "N
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NSwag.AssemblyLoader", "NSwag.AssemblyLoader\NSwag.AssemblyLoader.csproj", "{E6A8E5FD-4DD2-4D44-B843-F3975631423C}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NSwag.Core.Tests", "NSwag.Core.Tests\NSwag.Core.Tests.csproj", "{6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -450,6 +452,24 @@ Global
{E6A8E5FD-4DD2-4D44-B843-F3975631423C}.ReleaseTypeScriptStrict|x64.Build.0 = Release|Any CPU
{E6A8E5FD-4DD2-4D44-B843-F3975631423C}.ReleaseTypeScriptStrict|x86.ActiveCfg = Release|Any CPU
{E6A8E5FD-4DD2-4D44-B843-F3975631423C}.ReleaseTypeScriptStrict|x86.Build.0 = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Debug|x64.Build.0 = Debug|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Debug|x86.Build.0 = Debug|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Release|x64.ActiveCfg = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Release|x64.Build.0 = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Release|x86.ActiveCfg = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.Release|x86.Build.0 = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.ReleaseTypeScriptStrict|Any CPU.ActiveCfg = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.ReleaseTypeScriptStrict|Any CPU.Build.0 = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.ReleaseTypeScriptStrict|x64.ActiveCfg = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.ReleaseTypeScriptStrict|x64.Build.0 = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.ReleaseTypeScriptStrict|x86.ActiveCfg = Release|Any CPU
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A}.ReleaseTypeScriptStrict|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -476,6 +496,7 @@ Global
{51740C29-AF4F-40AD-BFDE-09E6F8C873D2} = {48E8B044-3374-4F39-A180-9E01F7A10785}
{8522EA49-D7FA-4582-A535-ED28C5AFD746} = {D8CC0D1C-8DAC-49FE-AA78-C028DC124DD5}
{EC94C4C5-3822-46D0-A8B4-B241D34830C0} = {D8CC0D1C-8DAC-49FE-AA78-C028DC124DD5}
+ {6AB4FD70-2CCF-4876-A193-B5FD6B32C39A} = {1030C3AA-7549-473B-AA7E-5DFAC2F9D37A}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {98FCEEE2-A45C-41E7-B2ED-1B14755E9067}
diff --git a/src/NSwag.Sample.NetGlobalAsax/NSwag.Sample.NetGlobalAsax.csproj b/src/NSwag.Sample.NetGlobalAsax/NSwag.Sample.NetGlobalAsax.csproj
index d25fa0e0d3..b4cffe78fc 100644
--- a/src/NSwag.Sample.NetGlobalAsax/NSwag.Sample.NetGlobalAsax.csproj
+++ b/src/NSwag.Sample.NetGlobalAsax/NSwag.Sample.NetGlobalAsax.csproj
@@ -59,8 +59,8 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
..\packages\Owin.1.0\lib\net40\Owin.dll
diff --git a/src/NSwag.Sample.NetGlobalAsax/packages.config b/src/NSwag.Sample.NetGlobalAsax/packages.config
index c2b8aa99bd..a2b3b54ede 100644
--- a/src/NSwag.Sample.NetGlobalAsax/packages.config
+++ b/src/NSwag.Sample.NetGlobalAsax/packages.config
@@ -27,7 +27,7 @@
-
+
diff --git a/src/NSwag.SwaggerGeneration.AspNetCore/NSwag.SwaggerGeneration.AspNetCore.csproj b/src/NSwag.SwaggerGeneration.AspNetCore/NSwag.SwaggerGeneration.AspNetCore.csproj
index dab0d405b1..1cc6d53f39 100644
--- a/src/NSwag.SwaggerGeneration.AspNetCore/NSwag.SwaggerGeneration.AspNetCore.csproj
+++ b/src/NSwag.SwaggerGeneration.AspNetCore/NSwag.SwaggerGeneration.AspNetCore.csproj
@@ -24,7 +24,7 @@
-
+
diff --git a/src/NSwag.SwaggerGeneration.WebApi.Tests/NSwag.SwaggerGeneration.WebApi.Tests.csproj b/src/NSwag.SwaggerGeneration.WebApi.Tests/NSwag.SwaggerGeneration.WebApi.Tests.csproj
index e708e9d10e..6011cccda9 100644
--- a/src/NSwag.SwaggerGeneration.WebApi.Tests/NSwag.SwaggerGeneration.WebApi.Tests.csproj
+++ b/src/NSwag.SwaggerGeneration.WebApi.Tests/NSwag.SwaggerGeneration.WebApi.Tests.csproj
@@ -47,8 +47,8 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
..\packages\Swashbuckle.Core.5.5.3\lib\net40\Swashbuckle.Core.dll
diff --git a/src/NSwag.SwaggerGeneration.WebApi.Tests/packages.config b/src/NSwag.SwaggerGeneration.WebApi.Tests/packages.config
index d7845b8be2..35dfb040ff 100644
--- a/src/NSwag.SwaggerGeneration.WebApi.Tests/packages.config
+++ b/src/NSwag.SwaggerGeneration.WebApi.Tests/packages.config
@@ -10,7 +10,7 @@
-
+
diff --git a/src/NSwag.SwaggerGeneration.WebApi/NSwag.SwaggerGeneration.WebApi.csproj b/src/NSwag.SwaggerGeneration.WebApi/NSwag.SwaggerGeneration.WebApi.csproj
index ded660b60e..79c56f6344 100644
--- a/src/NSwag.SwaggerGeneration.WebApi/NSwag.SwaggerGeneration.WebApi.csproj
+++ b/src/NSwag.SwaggerGeneration.WebApi/NSwag.SwaggerGeneration.WebApi.csproj
@@ -22,7 +22,7 @@
-
+
diff --git a/src/NSwag.SwaggerGeneration/NSwag.SwaggerGeneration.csproj b/src/NSwag.SwaggerGeneration/NSwag.SwaggerGeneration.csproj
index 720ee1a048..eda1fe9da5 100644
--- a/src/NSwag.SwaggerGeneration/NSwag.SwaggerGeneration.csproj
+++ b/src/NSwag.SwaggerGeneration/NSwag.SwaggerGeneration.csproj
@@ -22,7 +22,7 @@
-
+
diff --git a/src/NSwag.Tests/NSwag.Tests.csproj b/src/NSwag.Tests/NSwag.Tests.csproj
index c9bd8aa325..292e12540c 100644
--- a/src/NSwag.Tests/NSwag.Tests.csproj
+++ b/src/NSwag.Tests/NSwag.Tests.csproj
@@ -63,8 +63,8 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
True
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
diff --git a/src/NSwag.Tests/packages.config b/src/NSwag.Tests/packages.config
index 1bba49f1d0..ae6417edc3 100644
--- a/src/NSwag.Tests/packages.config
+++ b/src/NSwag.Tests/packages.config
@@ -4,5 +4,5 @@
-
+
\ No newline at end of file
diff --git a/src/NSwag.sln b/src/NSwag.sln
index 106c03f214..62d1c5b73b 100644
--- a/src/NSwag.sln
+++ b/src/NSwag.sln
@@ -144,7 +144,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NSwag.Sample.NETCore11", "N
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NSwag.Integration.NETCore11", "NSwag.Integration.NETCore11\NSwag.Integration.NETCore11.csproj", "{42F44479-032B-493A-87A7-E103275CB26B}"
EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NSwag.Sample.NETCore20", "NSwag.Sample.NETCore20\NSwag.Sample.NETCore20.csproj", "{EC94C4C5-3822-46D0-A8B4-B241D34830C0}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NSwag.Sample.NETCore20", "NSwag.Sample.NETCore20\NSwag.Sample.NETCore20.csproj", "{EC94C4C5-3822-46D0-A8B4-B241D34830C0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NSwag.Core.Tests", "NSwag.Core.Tests\NSwag.Core.Tests.csproj", "{810AF444-D713-4CEE-BC9F-13D7875AE69B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -890,6 +892,24 @@ Global
{EC94C4C5-3822-46D0-A8B4-B241D34830C0}.ReleaseTypeScriptStrict|x64.Build.0 = Release|Any CPU
{EC94C4C5-3822-46D0-A8B4-B241D34830C0}.ReleaseTypeScriptStrict|x86.ActiveCfg = Release|Any CPU
{EC94C4C5-3822-46D0-A8B4-B241D34830C0}.ReleaseTypeScriptStrict|x86.Build.0 = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Debug|x64.ActiveCfg = Debug|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Debug|x64.Build.0 = Debug|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Debug|x86.ActiveCfg = Debug|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Debug|x86.Build.0 = Debug|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Release|Any CPU.Build.0 = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Release|x64.ActiveCfg = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Release|x64.Build.0 = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Release|x86.ActiveCfg = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.Release|x86.Build.0 = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.ReleaseTypeScriptStrict|Any CPU.ActiveCfg = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.ReleaseTypeScriptStrict|Any CPU.Build.0 = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.ReleaseTypeScriptStrict|x64.ActiveCfg = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.ReleaseTypeScriptStrict|x64.Build.0 = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.ReleaseTypeScriptStrict|x86.ActiveCfg = Release|Any CPU
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B}.ReleaseTypeScriptStrict|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -940,6 +960,7 @@ Global
{8522EA49-D7FA-4582-A535-ED28C5AFD746} = {D8CC0D1C-8DAC-49FE-AA78-C028DC124DD5}
{42F44479-032B-493A-87A7-E103275CB26B} = {F31829C6-CEE4-4242-A4D9-820C36127B0B}
{EC94C4C5-3822-46D0-A8B4-B241D34830C0} = {D8CC0D1C-8DAC-49FE-AA78-C028DC124DD5}
+ {810AF444-D713-4CEE-BC9F-13D7875AE69B} = {634E4ABD-29EC-4EB2-81EF-7E41D6D6F6E0}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {98FCEEE2-A45C-41E7-B2ED-1B14755E9067}
diff --git a/src/NSwagStudio/NSwagStudio.csproj b/src/NSwagStudio/NSwagStudio.csproj
index 11d0629a3e..8d830c6da8 100644
--- a/src/NSwagStudio/NSwagStudio.csproj
+++ b/src/NSwagStudio/NSwagStudio.csproj
@@ -93,17 +93,17 @@
..\packages\Newtonsoft.Json.9.0.1\lib\net45\Newtonsoft.Json.dll
-
- ..\packages\NJsonSchema.9.10.30\lib\net45\NJsonSchema.dll
+
+ ..\packages\NJsonSchema.9.10.31\lib\net45\NJsonSchema.dll
-
- ..\packages\NJsonSchema.CodeGeneration.9.10.30\lib\net451\NJsonSchema.CodeGeneration.dll
+
+ ..\packages\NJsonSchema.CodeGeneration.9.10.31\lib\net451\NJsonSchema.CodeGeneration.dll
-
- ..\packages\NJsonSchema.CodeGeneration.CSharp.9.10.30\lib\net451\NJsonSchema.CodeGeneration.CSharp.dll
+
+ ..\packages\NJsonSchema.CodeGeneration.CSharp.9.10.31\lib\net451\NJsonSchema.CodeGeneration.CSharp.dll
-
- ..\packages\NJsonSchema.CodeGeneration.TypeScript.9.10.30\lib\net451\NJsonSchema.CodeGeneration.TypeScript.dll
+
+ ..\packages\NJsonSchema.CodeGeneration.TypeScript.9.10.31\lib\net451\NJsonSchema.CodeGeneration.TypeScript.dll
diff --git a/src/NSwagStudio/packages.config b/src/NSwagStudio/packages.config
index 61c8803938..214b748b4d 100644
--- a/src/NSwagStudio/packages.config
+++ b/src/NSwagStudio/packages.config
@@ -10,10 +10,10 @@
-
-
-
-
+
+
+
+