Недавно я изучал использование нового необычного динамического ключевого слова, введенного в C # 4.0 (DynamicObject, ExpandoObject и т. Д.)
Теперь я могу определить несколько применений (и несколько ловушек) для нового введения, но для цели моего проекта и для этого вопроса - я собираюсь очистить свои поздние привязанные индексированные коллекции на основе строк, чтобы сделать их более безопасно.
Итак, до динамики у меня было:
Car car1 = CARWarehouse1["Honda"];
И с динамикой, которую я теперь могу сделать (где CARWarehouse1 теперь расширяет базу DynamicObjects)
Car car1 = CARWarehouse1.Honda
Это все хорошо, и с первого взгляда кажется, что я добился того, чего хотел ... но так ли это?
Поскольку давайте посмотрим правде в глаза, для любого метода во время компиляции, если бы я неправильно набрал мой тип машины, на который ссылаются, компилятор не будет иметь проблемы, но я столкнусь с проблемами во время выполнения.
Поэтому, что мне действительно нужно, это проверка свойств времени компиляции и поддержка Intellisense. Итак - я могу это сделать?
Я знаю, что есть библиотеки, такие как Moq, которые имеют такую возможность, и Resharper предоставляет некоторую поддержку в intellisense, но я ищу более округлое решение.
Любые идеи, большие, маленькие, простые или сложные приветствуются.