波斯马BOSSMA Information Technology

基于RFC1960的属性过滤器 – C#版LDAPFilter

发布时间:2014年2月8日 / 分类:DOTNET / 4,348 次浏览 / 评论

这里说的属性是指某一个事物所具有的属性,但是其表现形式并不一定是高级语言中类的属性,比如一个人具有的属性:国家-中国;性别-男;年龄-28,这些属性可以对应类中的一个个属性,也可能是一个键值对集合,还可能只是一个字符串。

在JAVA的OSGI框架中实现了一个基于RFC1960的过滤器,使用特定的语法可以过滤对象、过滤服务,很是方便。

其语法比较简单,规则如下:

示例:

 

在.net的开源源码中没有找到这个的实现,还好java语法和csharp相差不大,于是找到改造之。

OSGI中的实现:https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/modules/extensibility/src/main/java/org/apache/tuscany/sca/extensibility/impl/LDAPFilter.java

C#版LDAPFilter:点此下载

使用例子:

两种使用方法:调用实例对象的方法;直接调用静态方法。用起来还是挺方便的,只是过滤的语法需要好好学习一下。

看一下这两种方法的实现。

1、直接调用静态方法

2、调用实例对象的方法

可以发现直接调用静态方法其实是封装了调用实例对象的方法,用起来更简单些。

这个LDAPFilter要求要过滤的属性格式为Dictionary,如果你使用的场景属性不是Dictionary的形式,需要先转换成这个格式(可以硬编码,也可以通过反射进行转换),处理起来就没问题了。

这个LDAPFilter是一个基础类,可以在他的基础上继续扩展封装,比如OSGI中用于过滤服务:

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《基于RFC1960的属性过滤器 – C#版LDAPFilter

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论