2014-04-23 2 views
0

기존 코드가 있다고 가정하십시오.조건부 컴파일 속성이있는 네임 스페이스를 대량으로 변경하십시오.

namespace Company.Product1 
{ 
    class Class1 
    { 

    } 
} 

이제 조건 기호에 따라 네임 스페이스를 변경해야합니다.

#if PRODUCT1 
namespace Company.Product1 
#else 
namespace Company.Product2 
#endif 
{ 
    class Class1 
    { 

    } 
} 

우리는 수백 개의 클래스가 있으므로 수동으로 많은 시간을 할애해야합니다. 간단한 방법이 있습니까? 아니면 어떻게 정규식을 사용하여 이것을 할 수 있습니까?

도움이 될 것입니다.

+0

[조건부로 전체 네임 스페이스 컴파일 - C#] (http://stackoverflow.com/questions/2589867/conditionally-compiling-entire-namespaces-c-sharp) –

답변

2

두 개의 다른 네임 스페이스에서 동일한 코드를 사용하는 것은 안티 패턴과 같지만 내가 알지 못하는 몇 가지 이유가있을 수 있으므로 어쨌든 질문에 답변하려고 노력할 것입니다. 또한 Resharper와 같은 도구를 사용하면 리팩토링 도구를 사용하여 전체 네임 스페이스의 이름을 쉽게 바꿀 수 있습니다.

는 단순히 비주얼 스튜디오 2013 텍스트 편집기 (또한 이전 버전에서 작동한다)를 사용하여 각 소스 파일에 네임 스페이스 정의를 교체하려면 :

1) 편집>를 선택를 찾기 및 바꾸기>빠른 텍스트를 네임 스페이스를 입력 검색 용어 텍스트 상자에

2) 교체 Company.Product1

3) 교체 기간 텍스트 상자에 텍스트 #if PRODUCT1 \ nnamespace Company.Product1 \ n # \ nnamespace Company.Product2 \ n # endif 텍스트 상자를 입력하십시오. \ n을 사용하여 개행 문자를 입력하는 방법에 유의하십시오.

4) 정규 표현식 사용이 선택되어 있는지 확인하십시오. 이 옵션을 사용하면 대체 텍스트에서 줄 바꿈 문자를 이스케이프 처리 할 수 ​​있습니다. 도 확인할 수 있습니다.전체 단어과 일치합니다.

5) 범위를 전체 솔루션으로 설정하십시오.

6) 을 클릭하십시오. 모두 교환하십시오.을 교체하십시오.

+0

"가능한 한 안티 패턴처럼 보입니다. 두 개의 서로 다른 네임 스페이스에있는 동일한 코드이지만 내가 알지 못하는 몇 가지 이유가있을 수 있으므로 어쨌든 질문에 답변하려고 노력할 것입니다. " 그 태도에 감사드립니다. SO에 게시하는 모든 사람이 자신이 일하는 더 큰 기술적 환경을 제어 할 수있는 것은 아닙니다. –

관련 문제