Я хочу создать коллекцию фабричных методов, которые могут создавать экземпляры различных объектов, тип которых будет известен только во время выполнения.Я могу легко создать делегат для этого:
delegate T InstanceCreator<T>()
, но это дает ошибку компилятора: "не удается разрешить символ T"
Dictionary<string, InstanceCreator<T>>
, поэтому вместо этого я просто объявляю
Dictionary<string, Delegate>
Я пытался восполнить это отсутствие специфичности типов в методе Add, но столкнулся с той же проблемой.
public void AddFactory(string typeName, InstanceCreator<T> factory)
Есть ли лучший способ убедиться, что только InstanceCreator<T>
делегатов добавили в мою коллекцию?