I'm trying to build my .net core 3.0 web api project but stuck on a statement last 4 days.
Here is my problem. I have a filtration model called "GridFilter" this model looks like this : 

```
    public class GridFilter
    {
         public string Operator { get; set; }
         public string Field { get; set; }
         public object Value { get; set; }
         public object Value2 { get; set; }
         public string Logic { get; set; }
    }

```

in this model i keep Value and Value2 as object before filtering any model im converting this values to related column type via [Universal Type Converter](https://www.nuget.org/packages/UniversalTypeConverter/). I used this system in .netfreamwork working pretty well. But in .net core 3.0 when i did a request this model filling like this : 
[Model](https://i.stack.imgur.com/wgXDR.png)

```
Operator: "eq"
Logic: null
Value: ValueKind = Number : "10000"
Value2: null
Field: "SCT_CATEGORY"

```

request: 
`{"filter": {"filters": [{"field": "SCT_CATEGORY", "value": 10000, "operator": "eq"}]}}`

I searched straight 4 days and can't fix this. Im trying to fill it like this:

```
Operator: "eq"
Logic: null
Value: 10000
Value2: null
Field: "SCT_CATEGORY"

```

How can i fix this problem.
Thanks!

**EDIT**

```
  [Route("[action]")]
    [HttpPost]
    public async Task<Response> List([FromBody]GridFilter request)

```

My ConfigureServices like this: 

```
services.AddControllers()
                .AddJsonOptions(o =>
                {
                    o.JsonSerializerOptions.PropertyNamingPolicy = null;
                    o.JsonSerializerOptions.DictionaryKeyPolicy = null;
                });

```

and in this snippet im building my filter for fluent nhibarte 

```
  internal static MyCriteria BuildFilter(ISession sess, GridFilter gf)
    {
        MyCriteria mc = null;
        var t = !string.IsNullOrEmpty(gf.Field)
            ? TypeHelper.GetType(typeof(T).GetProperty(gf.Field))
            : null;

        if (t == typeof(char) && (!new[] { "eq", "neq" }.Contains(gf.Operator)))
        {
            gf.Operator = "eq";
        }

        switch (gf.Operator)
        {
            case "eq":
                mc = gf.Value == null ? new MyCriteria { cr = Restrictions.IsNotNull(gf.Field), logic = gf.Logic.ToEnum(Logic.and) } : new MyCriteria { cr = Restrictions.Eq(gf.Field, ChangeType(gf.Value, t)), logic = gf.Logic.ToEnum(Logic.and) };
                break;...

```

And my change type methed like this: 

```
internal static object ChangeType(object value, Type conversionType)
        {
            try
            {
                object result;
                UniversalTypeConverter.TryConvert(value, conversionType, out result);
                return result;
            }
            catch (Exception)
            {
                return false;
            }
        }

```

at this point i need to convert `"10000"` not `ValueKind = Number : "10000"`