C# C语言中用户可配置的任意列表过滤#

C# C语言中用户可配置的任意列表过滤#,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我想为ASP.NETMVC项目中的列表实现一个用户可配置的过滤系统 配置用户必须能够根据列表中对象的任何属性筛选列表。此外,当前执行范围中的值(如静态类的属性)应可用于比较。要筛选的对象都是相同类型的 该系统的目的是使多个“白标签”电子商务站点由中央目录提供,但每个站点的可用产品子集略有不同 配置需要通过管理界面完成,而不是通过部署代码 我正在考虑的解决办法: `一,。实现我自己的基本语法。在数据库中存储文本以表示比较。使用反射完成比较/过滤 问题:我不喜欢自己滚。文本中可能出现错误 `二,。实

我想为ASP.NETMVC项目中的列表实现一个用户可配置的过滤系统

配置用户必须能够根据列表中对象的任何属性筛选列表。此外,当前执行范围中的值(如静态类的属性)应可用于比较。要筛选的对象都是相同类型的

该系统的目的是使多个“白标签”电子商务站点由中央目录提供,但每个站点的可用产品子集略有不同

配置需要通过管理界面完成,而不是通过部署代码

我正在考虑的解决办法:

`一,。实现我自己的基本语法。在数据库中存储文本以表示比较。使用反射完成比较/过滤

问题:我不喜欢自己滚。文本中可能出现错误

`二,。实现小型“比较DLL”,使用Spring或类似工具进行注入

问题:应用程序位于webfarm中,因此可能出现部署错误。管理变得困难。没有管理界面


理想情况下,我想要一个易于维护(将信息保存在db中)且相当安全(用户出错的可能性很小)的解决方案。

我们找到的解决此问题的解决方案相当有争议,但确实有效

我们将C#代码存储在数据库中,并根据需要将其编译成lambda函数,然后缓存生成的对象(我们使用的是AppFabric服务器)

然后使用此函数过滤对象列表

我们提供了一个管理界面,供人们创建和编辑自己的过滤器。管理界面确认代码可以在存储到数据库之前进行编译