У меня есть некоторый код, который получает строку - в зависимости от того, какой строкой является экземпляр класса, например, если его "customer" он выполняет новый CustomerData () et c. Будет 10-30 различных строковых значений, и у каждого есть связанный класс, для которого нужно создать экземпляр:
Я действительно подумал об использовании словаря для решения этой проблемы:
public IData data; //the classes are currently in an interface but this is looking impractical due to differing methods.
data = dataLookup["dataType"];
dataLookup = new Dictionary<string, **what data type is this?**>
{
{ "customer", new CustomerData() },
{ "company", new CompanyData() }
...etc 10-30 rows...
};
Проблема в том, что я не знаю, как установить тип данных в словаре - я не думаю, что добавление всех классов в интерфейс является ответом. Хотя все классы связаны между собой (все они являются «данными» для приложения), только около половины методов в каждом классе данных одинаковы, остальные методы уникальны для каждого класса данных. Я читал об интерфейсах, что я мог бы просто добавить неиспользуемые методы в каждый класс и не использовать их, но это звучит немного грязно.
Что было бы самым чистым решением для создания экземпляра правильного класса на основе строковое значение?