Мы используем Microsoft ERP, который динамически предоставляет веб-сервисы.Сервисы, генерируемые сервисом, находятся вне нашего контроля.Мы не можем сказать, как создаются и отображаются объекты, включая определения типов.Когда новый метод добавляется или удаляется из веб-службы, все перечисления типов нумеруются, и все, что использует веб-службу, после обновления до новых определений скрывается.Таким образом,
enumeration Type1
Item1
Item2
Item3
... может стать
enumeration Type6
Item1
Item2
Item3
... с изменением имени типа перечисления, но члены типа остаются статическими.Служба выводит службу, которая выглядит в точности как конечный результат использования XSD.exe для генерации объектов.Таким образом, каждый раз, когда кто-то выставляет новый метод в сервисе (через графический интерфейс ERP), объекты перестраиваются, типы присваиваются определениям сервиса в алфавитном порядке, переэкспонируются, оставляя весь базовый фрагмент кода.использовать отражение, чтобы определить тип, а затем проанализировать статический член в новом бизнес-объекте, но это не работает, потому что я не могу набрать приведение перечисления, не зная фактического имени типа.Следующее не будет работать.
System.Type t = service.BusinessObjectEnumeration.GetType();
service.SomeField = Enum.Parse(t,"Item1");
..., поскольку компилятор выдает ошибку, потому что я не приводил явное приведение перечисления.
Есть идеи, как мне преодолеть эту проблему при динамическом приведении типа к правильному перечислению?
Опять же, я не могу изменить фактические объекты, предоставляемые службой, только код, подписывающийся на службу.
Спасибо, Джордж