diff --git a/Directory.Packages.props b/Directory.Packages.props
index 76b6d47..9754d60 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -13,5 +13,6 @@
+
\ No newline at end of file
diff --git a/src/Directory.Build.props b/src/Directory.Build.props
index d2d2e35..5cac6aa 100644
--- a/src/Directory.Build.props
+++ b/src/Directory.Build.props
@@ -1,7 +1,7 @@
- 0.9.0
+ 0.9.1
dev
diff --git a/src/MiniValidation/MiniValidator.cs b/src/MiniValidation/MiniValidator.cs
index 268e4bb..99d3d11 100644
--- a/src/MiniValidation/MiniValidator.cs
+++ b/src/MiniValidation/MiniValidator.cs
@@ -380,7 +380,12 @@ private static async Task TryValidateImpl(
foreach (var property in typeProperties)
{
- var propertyValue = property.GetValue(target);
+ object? propertyValue = null;
+ try
+ {
+ propertyValue = property.GetValue(target);
+ }
+ catch (Exception) { }
var propertyValueType = propertyValue?.GetType();
var (properties, _) = _typeDetailsCache.Get(propertyValueType);
diff --git a/tests/MiniValidation.UnitTests/MiniValidation.UnitTests.csproj b/tests/MiniValidation.UnitTests/MiniValidation.UnitTests.csproj
index fc7cbec..17cea61 100644
--- a/tests/MiniValidation.UnitTests/MiniValidation.UnitTests.csproj
+++ b/tests/MiniValidation.UnitTests/MiniValidation.UnitTests.csproj
@@ -3,7 +3,7 @@
net6.0;net7.0
net471;net6.0;net7.0
- 10.0
+ 11.0
enable
enable
@@ -27,6 +27,7 @@
all
+
diff --git a/tests/MiniValidation.UnitTests/TestTypes.cs b/tests/MiniValidation.UnitTests/TestTypes.cs
index 865ca97..222f5ef 100644
--- a/tests/MiniValidation.UnitTests/TestTypes.cs
+++ b/tests/MiniValidation.UnitTests/TestTypes.cs
@@ -245,4 +245,22 @@ class TestTypeForTypeDescriptor
[MaxLength(1)]
public string? AnotherProperty { get; set; } = "Test";
-}
\ No newline at end of file
+}
+
+class ClassWithJTokenProperty
+{
+ public ClassWithJTokenProperty()
+ {
+ SomeJsonToken = Newtonsoft.Json.Linq.JToken.Parse("""
+ {
+ "prop1": 123,
+ "array1": [1, 2, 3],
+ "obj1": {
+ "prop2": "abc"
+ }
+ }
+ """);
+ }
+
+ public Newtonsoft.Json.Linq.JToken SomeJsonToken { get; }
+}
diff --git a/tests/MiniValidation.UnitTests/TryValidate.cs b/tests/MiniValidation.UnitTests/TryValidate.cs
index f4e7ddb..009b606 100644
--- a/tests/MiniValidation.UnitTests/TryValidate.cs
+++ b/tests/MiniValidation.UnitTests/TryValidate.cs
@@ -413,4 +413,15 @@ public async Task TryValidateAsync_With_Attribute_Attached_Via_TypeDescriptor()
Assert.Single(errors["PropertyToBeRequired"]);
Assert.Single(errors["AnotherProperty"]);
}
+
+ [Fact]
+ public void CanValidateClassWithJTokenProperty()
+ {
+ var thingToValidate = new ClassWithJTokenProperty();
+
+ var result = MiniValidator.TryValidate(thingToValidate, out var errors);
+
+ Assert.True(result);
+ Assert.Equal(0, errors.Count);
+ }
}