From 8b7950517155c7a3bf4ad8557fa0cc88c72634c3 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Fri, 26 Jul 2013 11:46:51 +0200 Subject: [PATCH] fix #275 better exception message when using a custom contract resolver that does not extend ElasticResolver --- src/Nest.Tests.Unit/Nest.Tests.Unit.csproj | 1 + src/Nest/Resolvers/Converters/IndexNameMarkerConverter.cs | 3 ++- src/Nest/Resolvers/Converters/TypeNameMarkerConverter.cs | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Nest.Tests.Unit/Nest.Tests.Unit.csproj b/src/Nest.Tests.Unit/Nest.Tests.Unit.csproj index 9f5b36c9ac8..9508adfadfa 100644 --- a/src/Nest.Tests.Unit/Nest.Tests.Unit.csproj +++ b/src/Nest.Tests.Unit/Nest.Tests.Unit.csproj @@ -215,6 +215,7 @@ + Test.settings True diff --git a/src/Nest/Resolvers/Converters/IndexNameMarkerConverter.cs b/src/Nest/Resolvers/Converters/IndexNameMarkerConverter.cs index 46dd8404606..698d603a7d6 100644 --- a/src/Nest/Resolvers/Converters/IndexNameMarkerConverter.cs +++ b/src/Nest/Resolvers/Converters/IndexNameMarkerConverter.cs @@ -22,13 +22,14 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s writer.WriteNull(); return; } + var settings = serializer.ContractResolver as ElasticResolver; if (settings != null && settings.ConnectionSettings != null) { var typeName = marker.Resolve(settings.ConnectionSettings); writer.WriteValue(typeName); } - else throw new Exception("Could not find connection settings on the json contract resolver"); + else throw new Exception("If you use a custom contract resolver be sure to subclass from ElasticResolver"); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) diff --git a/src/Nest/Resolvers/Converters/TypeNameMarkerConverter.cs b/src/Nest/Resolvers/Converters/TypeNameMarkerConverter.cs index f3d89267da4..7d233021b6e 100644 --- a/src/Nest/Resolvers/Converters/TypeNameMarkerConverter.cs +++ b/src/Nest/Resolvers/Converters/TypeNameMarkerConverter.cs @@ -28,7 +28,7 @@ public override void WriteJson(JsonWriter writer, object value, JsonSerializer s var typeName = marker.Resolve(settings.ConnectionSettings); writer.WriteValue(typeName); } - else throw new Exception("Could not find connection settings on the json contract resolver"); + else throw new Exception("If you use a custom contract resolver be sure to subclass from ElasticResolver"); } public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)