C# 具有可以是任何值类型的属性的模型

C# 具有可以是任何值类型的属性的模型,c#,.net,angular,api,generics,C#,.net,Angular,Api,Generics,我有一个获取FilterState模型的控制器方法。 该模型包含一个过滤器模型列表,其中包含Value属性,可以是任何值类型(int、string、datetime等)。 如何编写这个类并确定从前端传入的属性类型 [HttpGet] public async Task<GridResultViewModel<ItemGridViewModel>> GetFiltered(int modelId, [FromQuery] FilterState filterState

我有一个获取FilterState模型的控制器方法。
该模型包含一个过滤器模型列表,其中包含Value属性,可以是任何值类型(int、string、datetime等)。
如何编写这个类并确定从前端传入的属性类型

[HttpGet]
public async Task<GridResultViewModel<ItemGridViewModel>> GetFiltered(int modelId, 
  [FromQuery] FilterState filterState)
{
   ...
}

public class FilterState
{
   public int Skip { get; set; }
   public int Take { get; set; }
   public IEnumerable<Filter> Filters { get; set; }
}

public class Filter
{
   public string Operator { get; set; }
   public string Field { get; set; }
   public ??? Value { get; set; } // this can be string, int, datetime etc.
}
[HttpGet]
公共异步任务GetFiltered(int modelId,
[FromQuery]过滤器状态(过滤器状态)
{
...
}
公共类过滤器状态
{
公共整数跳过{get;set;}
公共整数Take{get;set;}
公共IEnumerable筛选器{get;set;}
}
公共类过滤器
{
公共字符串运算符{get;set;}
公共字符串字段{get;set;}
公共???值{get;set;}//可以是字符串、int、datetime等。
}
如果我将Value属性设置为object或dynamic类型,则始终为null。

我在前端使用Angular 11。

我认为这里唯一的选择是将type设置为
string
,然后,可能基于另一个属性,尝试解析为特定类型
        public string Value { get; set; } = "str12";

        object CheckType(string value)
        {
            return
                int.TryParse(value, out int intVal) ? intVal :
                DateTime.TryParse(value, out DateTime datetimeVal) ? datetimeVal :
                value;
        }

        var result = CheckType(Value);
        if (result is int)
        {
            
        }
        if (result is string)
        {

        }