У меня есть синглтон, который может зарегистрировать функцию для разрешения значения идентификатора для каждого типа:
public void RegisterType<T>(Func<T, uint> func)
, например:
RegisterType<Post>(p => p.PostId );
RegisterType<Comment>(p => p.CommentId );
, а затем я хочу разрешить идентификатордля объекта, подобного этому:
GetObjectId(myPost);
, где определение GetObjectId равно
public uint GetObjectId(object obj)
Вопрос в том, как я могу сохранить ссылку для каждой функции, чтобы вызывать ее в последнее время.Проблема в том, что у каждого функционала свой T-тип, и я не могу сделать что-то вроде этого:
private Dictionary<Type, Func<object, uint>> _typeMap;
Как можно решить?Деревья выражений?
С уважением, Иезекииль