AspectDNG和 Aspect# 其实有一点是非常相似的,那就是他也和Aspect#那样基于另一个类库rail,rail是干什么用的呢?简单的说,rail是用来的做静态织入用的,你给我任何一个assembly,只要没有混淆,我都可以用rail在il的级别对原有的代码作修改,修改当然就包括了扩展、合并、intercept、delete等等,总之,从修改原有程序集的角度来讲,理论上是无所不能的。AspectDNG基于rail,并以在此基础上定义了一套xml格式的ILML语言,能够将原有的程序集拆散成ILML格式,方便用户的修改,修改过后,再拼装回去,就成了新的程序集,因此,AspectDNG的定位也就是非常明确的,那就是对静态程序集的修改和扩展,并为静态织入旧的程序集提供了很多方便的类库。但是记住,AspectDNG只提供静态织入,这就是它的定位。还有像Eos,和他也是类似的,只不过Eos提供了一个非常类似AspectJ的语法,但本质上,还是差不多的静态il级别织入。