【发布时间】:2012-10-03 21:49:09
【问题描述】:
我有一个小型路由引擎。它匹配模式并填充路由参数字典。因此/blog/{action}/{id} 将匹配/blog/view/123 并将123 作为id 的键的值放在字典中等等。
有趣的部分来了。我想改变这个系统,改为使用模型类型的架构,所以我可以有类似的东西
class BlogRoute
{
[RouteParam("action")]
public string Action{get;set;}
[RouteParam("id")]
public string ID{get;set;}
}
当然,还有其他路线“模型”,例如/comments/{action}/{entryid}/{id}等,所以我需要通过反思来做到这一点
我的最终目标基本上是拥有AddRoute("pattern", new BlogRoute()) 或类似的东西,并且我的路由器将数据动态填充到 BlogRoute 实例中
我将如何开始这样做?我几乎没有使用过反射(尽管对 IL 非常熟悉),这似乎有点令人生畏,我害怕以次优的方式来做,因为这对性能有点关键。这也在多个其他库中完成。基本上每个 ORM 都会做类似的事情。是否有任何教程或类似的东西可以开始这样的事情?
【问题讨论】:
标签: .net dynamic reflection