Столкновение пространства имен ISet: System.Collections.Generi c и Iesi.Collections.Generic - PullRequest
0 голосов
/ 08 апреля 2020

При обновлении проекта с 3.5 до 4.0 я столкнулся с коллизией класса ISet, который существует в обоих пространствах имен:

System.Collections.Generic 
Iesi.Collections.Generic

У меня есть эти два класса в сотнях файлов. До 4.0 не было ISet в System.Collections.Generi c.

Как бы вы решили эту боль ...? Должен ли я действительно добавить к каждому файлу: Iesi.Collections.Generi c для ISet?

или дать псевдоним:

using IesiGeneric = Iesi.Collections.Generic;

и использовать вот так: IesiGeneri c .ISet но все это означает, что я должен изменить все эти файлы ....

Есть ли другой вариант?

ОБНОВЛЕНИЕ

А как насчет создания такого интерфейса:

using System;
using System.Linq;
using System.Text;
using Iesi.Collections.Generic;

namespace NameSpace
{
  public interface IesiSet<T> : ISet<T>
  {
  }
}

и измените Iesi Iset's на: IesiSet?

1 Ответ

0 голосов
/ 08 апреля 2020

Вы должны иметь возможность добавлять псевдоним непосредственно к типу:

using ISet = Iesi.Collections.Generic.ISet;

Это должно означать, что вам ТОЛЬКО нужно обновить заголовок каждого файла.

Однако, в дальнейшем, Я ожидаю сверхурочных (особенно в связи с кадровыми перестановками), это станет чуствительностью для обслуживания, так как люди предполагают, что это встроенный ISet. Я бы взял на себя боль сейчас и заменил бы глобально сейчас.

[также

Я столкнулся с коллизией класса ISet, который существует в обоих пространствах имен

Система .Collections.Generi c .ISet - это интерфейс . Если ваша версия класса , я бы посоветовал переименовать ее сейчас, так как она выглядит как имя интерфейса]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...