2012-01-22 9 views
5

저는 이것을 약간 검색 한 후 몇 가지 시도를 해봤습니다. 원하는 작업을하지 않고도 작업을 수행 할 수는 없습니다.Resharper 및 네임 스페이스 별칭 한정자

일반적으로 Resharper는 네임 스페이스 최적화 방법을 사용합니다. DTO를 도메인 모델 객체에 매핑하는 서비스 구현에서는 각 객체에 대한 별칭을 만드는 것이 좋습니다. 그런 식으로 늦었을 때 잠이 잘 때 Dtos.CustomerDomainModel.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 번호를 유지 하는가를?

답변

3

ReSharper는 다음과 같이 할 것입니다. 코드 정리시 참조를 줄이십시오.

이 동작이 원치 않는 경우에도 기술적으로 올바른 것으로 보입니다. 왜냐하면 당신의 코드에서 뭔가를 단축시킬 것이기 때문입니다. 그리고 그게 알고리즘이하기로되어있는 것입니다.

이 방법이 결과의 원인이되는 알고리즘 작품 :

  1. ReSharper에서 만들어 질 수있는 참조를 발견을 짧은 (정확히 말할 수있는 날 정도로 코드가 주어지지했지만, 그것은하지 않습니다 문제).
  2. 단축 한 후에는 객체를 확인할 수 있어야하므로 새로운 용도로 추가됩니다 (using Customer = MyProduct.Core.Domain.Model.Customer;).
  3. Resharper는 using Dtos = MyProduct.ServiceModel.Dtos;이 더 이상 사용되지 않는 것을 감지합니다 (결국 다른 하나는 단축 된 참조를 포함합니다). 그리고 그것을 제거합니다.

이것이 내가 생각하는 원인입니다. 코드에서 실제 사용법을 보지 않고서는 100 % 확신 할 수 없습니다. 하지만 이것이 리팩토링의 가장 큰 원인 일 수 있습니다.

+0

나는 Dtos 별칭 사용을 제거하는 이유를 알았습니다. 뭔가 다른 MyProejct.ServiceModel에 대한 참조가 필요합니다. 지시문을 사용하여 최적화하지 않는 코드 정리 프로필을 만드는 것이 좋습니다. –