【发布时间】:2011-02-28 14:17:52
【问题描述】:
我有一个单例,可以注册一个函数来解析每种类型的 id 值:
public void RegisterType<T>(Func<T, uint> func)
例如:
RegisterType<Post>(p => p.PostId );
RegisterType<Comment>(p => p.CommentId );
然后我想解析一个对象的 id,如下所示:
GetObjectId(myPost);
GetObjectId 定义在哪里
public uint GetObjectId(object obj)
问题是,我怎样才能为每个函数存储一个引用以便最近调用它。 问题是每个 func 都有不同的 T 类型,我不能这样做:
private Dictionary<Type, Func<object, uint>> _typeMap;
如何解决?表达式树?
问候 以西结
【问题讨论】:
-
Post和Comment是否可以从具有Id属性的公共接口派生? -
不,它们不能从通用接口派生。
标签: c# .net-3.5 lambda expression-trees