Как переименовать c# пространство имен в существующем API, не взламывая пользовательский код?

Действительно ли возможно переименовать имя пространства имен в существующем API, не взламывая пользовательский код?

5
задан Martin 18 June 2010 в 15:19
поделиться

4 ответа

нет, это невозможно. Лучшее, что вы можете сделать, это переименовать пространство имен в одном файле: http://msdn.microsoft.com/en-us/library/sf0df423(VS.80).aspx

5
ответ дан 18 December 2019 в 14:42
поделиться

Можно ли переименовать пространство имен имя в существующем API без нарушение пользовательского кода?

Если вы измените пространство имен, в котором находится объект, он нарушит код, который на него ссылается.

5
ответ дан 18 December 2019 в 14:42
поделиться

Вы можете создать кучу объектов в старом пространстве имен, которые просто делегируют свои вызовы новым объектам (прозрачные прокси по сути), а затем в какой-то момент в будущем обесценить объекты прокси.

Возможно, это довольно ужасно, в зависимости от размера/сложности вашей кодовой базы.

Лучшим вариантом может быть просто нетехническое предупреждение пользователей об изменении пространства имен API заблаговременно до его выпуска. Если они активно разрабатывают клиентов, то поиск/замена не станет для них концом света.

Если значительное число клиентов НЕ активно разрабатывают, то вам придется некоторое время продолжать ветку сопровождения/исправления ошибок со старым пространством имен.

3
ответ дан 18 December 2019 в 14:42
поделиться

Если у вас есть доступ к коду вызывающего API, вы можете использовать псевдоним для ссылки на ваше новое пространство имен.

Таким образом, с точки зрения вызывающего API, никаких изменений не произойдет.

0
ответ дан 18 December 2019 в 14:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: