ссылки на Func разных типов

У меня есть синглтон, который может зарегистрировать функцию для разрешения значения идентификатора для каждого типа:

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)

Вопрос в том, как я могу сохранить ссылку для каждой функции, чтобы вызывать ее в последнее время. Проблема в том, что каждая функция имеет разные T типа, и я не могу сделать что-то вроде этого:

private Dictionary<Type, Func<object, uint>> _typeMap;

Как это решить? Деревья выражений?

касается Ezequiel

7
задан eze1981 12 May 2017 в 18:42
поделиться