Я работаю с плохо спроектированным API. У меня есть класс, который мне нужно для сериализации, и у меня есть контроль над составом класса, но не с теми типами, которые составляют свойства, которые класс сериализует. Пример приведен ниже:Вложенные классы с тем же именем в отдельных сборках, вызывающих сериализацию Головные боли
<Project>
<SomeProperty1 />
<Install>
<DefaultStep></DefaultStep>
</Install>
<Uninstall>
<DefaultStep></DefaultStep>
</Uninstall>
</Project>
Проблема заключается в том, я не имею никакого контроля над «Установить» и типов «Удалить», и их вложенные типы имеют такое же имя. «Установить» находится в MyCompany.Install.dll и «Удалить» находится в MyCompany.Uninstall.dll. Но кикер - это MyCompany.Uninstall.dll референции MyCompany.Install.dll, что совершенно бессмысленно. Я знаю, что это плохой дизайн (вся структура, с которой я имею дело, ужасен), но у меня нет выбора в работе с ней.
Ошибки я получаю:
«Типы 'MyCompany.Install.Uninstall.DefaultStep' и 'MyCompany.Install.DefaultStep' оба используют имя типа XML, 'DefaultStep', из пространства имен ''. Используйте атрибуты XML , чтобы указать уникальное имя и/или пространство имен XML для этого типа. "
Это была бы хорошая идея, если бы у меня не было никакого контроля над сборками, которые содержат классы «Установить» и «Удалить».
Любые идеи?
Слайк, я никогда не видел этого раньше. –
@Greg: Я был поражен, когда нашел его тоже. Бесконечное предвидение Инженеры Microsoft никогда не перестают удивлять меня. Учитывается каждый сценарий. ;) – jrista
Спасибо за помощь. Я опубликовал решение, которое я нашел ниже. – AdvancedREI