Спецификатор псевдонима Resharper и Namespace - PullRequest
5 голосов
/ 22 января 2012

Я немного обыскал это и перепробовал несколько вещей, но не могу заставить его работать, не отключив некоторые вещи, которые я хочу включить.

Обычно я даю Resharper свой путь с пространством именоптимизаций.В реализации Службы, которая отображает DTO на объекты Domain Model, это хороший визуальный элемент для создания псевдонима для каждого.Таким образом, когда поздно и вы лишены сна, видите, что Dtos.Customer и DomainModel.Customer помогают.

using DomainModel = MyProduct.Core.Domain.Model;
using Dtos = MyProduct.ServiceModel.Dtos;

Когда я запускаю очистку кода, он меняет их на:

using DomainModel = MyProduct.Core.Domain.Model;
using Customer = MyProduct.Core.Domain.Model.Customer;

Кто-нибудь делает это или что-то подобное и удерживает R # от этого?

1 Ответ

3 голосов
/ 23 января 2012

Это то, что ReSharper сделает, когда вы разрешите это: укоротите ссылки при очистке кода.

Даже если это поведение может быть нежелательным для вас, это технически считается правильным.Потому что в вашем коде это что-то сократит.И вот что должен делать алгоритм.

Вот как работает алгоритм, который приводит к такому результату:

  1. Resharper находит ссылку, которую можно сделать короче (вы недал мне достаточно кода, чтобы точно сказать вам, где, но это не имеет значения).
  2. После сокращения необходимо убедиться, что объект может быть разрешен, поэтому он добавляет новое использование для него (using Customer = MyProduct.Core.Domain.Model.Customer; вваш случай).
  3. Resharper обнаруживает, что using Dtos = MyProduct.ServiceModel.Dtos; больше не используется (в конце концов, другое использование покрывает вашу сокращенную ссылку).И удаляет его.

Это то, что я подозреваю, вызывает это.Я не могу быть уверен на 100%, не видя фактического использования в коде.Но это, скорее всего, причина рефакторинга.

...