다음을 통해 공유


코드 분석 사전 사용자 지정

Code Analysis는 기본 제공 사전을 사용하여 코드에서 식별자를 검사하여 철자, 대/소문자 및 기타 .NET 디자인 지침 명명 규칙에서 발생한 오류를 확인합니다. 사용자 지정 사전 Xml 파일을 만들어 용어, 약어 및 머리글자어를 기본 제공 사전에 추가, 제거 또는 수정할 수 있습니다.

예를 들어 코드에 DoorKnokker라는 클래스가 포함되어 있다고 가정합니다. Code Analysis는 이 이름을 doorknokker로 구성된 복합 단어로 식별합니다. 그러면 knokker의 철자가 잘못되었다는 경고가 발생합니다. 코드 분석에서 철자를 인식하도록 하려면 knokker라는 용어를 사용자 지정 사전에 추가합니다.

사용자 지정 사전을 만들려면

CustomDictionary.xml이라는 파일을 만듭니다.

다음 XML 구조를 사용하여 사용자 지정 단어를 정의합니다.

<Dictionary>
      <Words>
         <Unrecognized>
            <Word>knokker</Word>
         </Unrecognized>
         <Recognized>
            <Word></Word>
         </Recognized>
         <Deprecated>
            <Term PreferredAlternate=""></Term>
         </Deprecated>
         <Compound>
            <Term CompoundAlternate=""></Term>
         </Compound>
         <DiscreteExceptions>
            <Term></Term>
         </DiscreteExceptions>
      </Words>
      <Acronyms>
         <CasingExceptions>
            <Acronym></Acronym>
         </CasingExceptions>
      </Acronyms>
   </Dictionary>

사용자 지정 사전 요소

사용자 지정 사전에서 다음 요소의 내부 텍스트로 용어를 추가하여 Code Analysis 사전의 동작을 수정할 수 있습니다.

Dictionary/Words/Recognized/Word

코드 분석에서 올바른 철자로 식별하는 용어 목록에 용어를 포함하려면 용어를 Dictionary/Words/Recognized/Word 요소의 내부 텍스트로 추가합니다. Dictionary/Words/Recognized/Word 요소의 용어는 대/소문자를 구분하지 않습니다.

예제

<Dictionary>
      <Words>
         <Recognized>
            <Word>knokker</Word>
            ...
         </Recognized>
         ...
      </Words>
      ...
</Dictionary>

Dictionary/Words/Recognized 노드의 용어는 다음 코드 분석 규칙에 적용됩니다.

Dictionary/Words/Unrecognized/Word

코드 분석에서 올바른 철자로 식별하는 용어 목록에서 용어를 제외하려면 용어를 Dictionary/Words/Unrecognized/Word 요소의 내부 텍스트로 제외합니다. Dictionary/Words/Unrecognized/Word 요소의 용어는 대/소문자를 구분하지 않습니다.

예제

<Dictionary>
      <Words>
         <Unrecognized>
            <Word>meth</Word>
            ...
         </Unrecognized>
         ...
      </Words>
      ...
</Dictionary>

Dictionary/Words/Unrecognized 노드의 용어는 다음 코드 분석 규칙에 적용됩니다.

Dictionary/Words/Deprecated/Term[@PreferredAlternate]

코드 분석에서 사용되지 않음으로 식별하는 용어 목록에 용어를 포함하려면 용어를 Dictionary/Words/Deprecated/Term 요소의 내부 텍스트로 추가합니다. 사용되지 않는 용어는 철자가 올바르지만 사용하면 안되는 단어입니다.

경고에 제안된 대체 단어를 포함하려면 Term 요소의 PreferredAlternate 특성에 대체 단어를 지정합니다. 대체 단어를 제안하지 않으려는 경우 이 특성 값을 비워둘 수 있습니다.

  • Dictionary/Words/Deprecated/Term 요소의 사용되지 않는 용어는 대/소문자를 구분하지 않습니다.

  • PreferredAlternate 특성 값은 대/소문자를 구분합니다. 대체 복합 단어의 경우 파스칼식 대/소문자를 사용합니다.

예제

<Dictionary>
      <Words>
         <Deprecated>
            <Term PreferredAlternate="LogOn">login</Term>
            ...
         </Deprecated>
         ...
      </Words>
      ...
</Dictionary>

Dictionary/Words/Deprecated 노드의 용어는 다음 코드 분석 규칙에 적용됩니다.

Dictionary/Words/Compound/Term[@CompoundAlternate]

기본 제공 사전은 일부 용어를 복합 용어가 아닌 단일 불연속 용어로 식별합니다. 코드 분석에서 복합 단어로 식별하는 용어 목록에 용어를 포함하고 용어의 정확한 대/소문자를 지정하려면 용어를 Dictionary/Words/Compound/Term 요소의 내부 텍스트로 추가합니다. Term 요소의 CompoundAlternate 특성에서 개별 단어의 첫 글자를 대문자로 하여(파스칼식 대/소문자) 복합 용어를 구성하는 개별 단어를 지정합니다. 내부 텍스트에 지정된 용어는 Dictionary/Words/DiscreteExceptions 목록에 자동으로 추가됩니다.

  • Dictionary/Words/Compound/Term 요소의 복합 용어는 대/소문자를 구분하지 않습니다.

  • CompoundAlternate 특성 값은 대/소문자를 구분합니다. 대체 복합 단어의 경우 파스칼식 대/소문자를 사용합니다.

예제

<Dictionary>
      <Words>
         <Compound>
            <Term CompoundAlternate="CheckBox">checkbox</Term>
            ...
         </Compound>
         ...
      </Words>
      ...
</Dictionary>

Dictionary/Words/Compound 노드의 용어는 다음 코드 분석 규칙에 적용됩니다.

Dictionary/Words/DiscreteExceptions/Term

복합 단어에 대한 대/소문자 규칙에 따라 용어를 검사할 때 코드 분석에서 단일 불연속 단어로 식별하는 용어 목록에서 용어를 제외하려면 용어를 Dictionary/Words/DiscreteExceptions/Term 요소의 내부 텍스트로 추가합니다. Dictionary/Words/DiscreteExceptions/Term 요소의 용어는 대/소문자를 구분 하지 않습니다.

예제

<Dictionary>
      <Words>
         <DiscreteExceptions>
            <Term>checkbox</Term>
            ...
         </DiscreteExceptions>
         ...
      </Words>
      ...
</Dictionary>

Dictionary/Words/DiscreteExceptions 노드의 용어는 다음 코드 분석 규칙에 적용됩니다.

Dictionary/Acronyms/CasingExceptions/Acronym

코드 분석에서 올바른 철자로 식별하는 용어 목록에 머리글자어를 포함하고 복합 단어에 대한 대/소문자 규칙에 따라 용어를 검사할 때 머리글자어를 표시하려면 용어를 Dictionary/Acronyms/CasingExceptions/Acronym 요소의 내부 텍스트로 추가합니다. Dictionary/Acronyms/CasingExceptions/Acronym 요소의 머리글자어는 대/소문자를 구분합니다.

예제

<Dictionary>
      <Acronyms>
         <CasingExceptions>
            <Acronym>NESW</Acronym>   <!-- North East South West -->
            ...
         </CasingExceptions>
         ...
      </Acronyms>
      ...
</Dictionary>

Dictionary/Acronyms/CasingExceptions 노드의 용어는 다음 코드 분석 규칙에 적용됩니다.

프로젝트에 사용자 지정 사전을 적용하려면

  1. 솔루션 탐색기에서 다음 절차 중 하나를 사용합니다.

    • 단일 프로젝트에 사전을 추가하려면 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 기존 항목 추가를 클릭합니다. 파일 형식은 모든 파일을 선택한 다음 기존 항목 추가 대화 상자에서 파일을 지정합니다.

    • 둘 이상의 프로젝트 간에 공유되는 사전을 추가하려면 기존 항목 추가 대화 상자에서 공유할 파일을 찾고 추가 단추에서 아래쪽 화살표를 클릭한 다음 링크로 추가를 클릭합니다.

  2. 솔루션 탐색기에서 CustomDictionary.xml 파일 이름을 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.

  3. 빌드 작업 목록에서 CodeAnalysisDictionary를 선택합니다.

  4. 출력 디렉터리에 복사 목록에서 복사 안 함을 선택합니다.