Programming

공개적으로 보이는 유형 또는 멤버에 대한 XML 주석이 누락되었습니다.

procodes 2020. 2. 28. 19:38
반응형

공개적으로 보이는 유형 또는 멤버에 대한 XML 주석이 누락되었습니다.


"공개적으로 보이는 유형 또는 멤버에 대한 XML 주석 누락"경고가 표시됩니다.

이것을 해결하는 방법?


5 가지 옵션 :

  • 문서 주석을 작성하십시오 (시간이 많이 걸리지 만 시간이 많이 소요됨)
  • 주석 생성 끄기 (프로젝트 속성에서)
  • 프로젝트 속성에서 경고를 비활성화하십시오 ( '프로젝트 속성'에서 프로젝트 속성-> 빌드> "오류 및 경고"(섹션)로 이동하십시오.
  • 사용 #pragma warning disable 1591단지 코드의 일부 비트에 대한 경고를 비활성화 (및 #pragma warning restore 1591이후)
  • 경고를 무시하십시오 (나쁜 생각-새로운 "실제"경고를 놓치게됩니다)

공개적으로 볼 수있는 유형과 물론 구성원에 XML 주석 추가 :)

///<Summary>
/// Gets the answer
///</Summary>
public int MyMethod()
{
   return 42;
}

<summary>모든 멤버에 대해 이러한 유형 주석 이 필요합니다.이 주석도 인텔리전스 팝업 메뉴에 표시됩니다.

이 경고가 표시 되는 이유 는 프로젝트 설정에서 문서 xml 파일을 출력하도록 프로젝트를 설정했기 때문입니다. 이것은 클래스 라이브러리 (.dll 어셈블리)에 유용합니다. 이는 .dll 사용자가 Visual Studio에서 API에 대한 인텔리전스 문서를 받고 있음을 의미합니다.

GhostDoc Visual Studio AddIn 의 복사본을 구하는 것이 좋습니다 . 문서화가 훨씬 쉬워집니다.


XML 주석에 대한 경고 억제

(내 작품이 아니지만 유용하다는 것을 알았으므로 기사 및 링크를 포함 시켰습니다)

http://bernhardelbl.wordpress.com/2009/02/23/suppress-warnings-for-xml-comments/

여기에서는 Visual Studio 빌드 후 XML 주석에 대한 경고를 표시하지 않는 방법을 보여줍니다.

배경

Visual Studio 프로젝트 설정에서 "XML 문서 파일"표시를 확인한 경우 모든 XML 주석이 포함 된 XML 파일이 생성됩니다. 또한 XML 주석이 없거나 잘못되어 디자이너 생성 파일에도 많은 경고가 표시됩니다. 경고가 코드를 개선하고 안정화시키는 데 도움이되는 경우도 있지만 수백 개의 XML 주석 경고를받는 것은 쉽지 않습니다. 경고

공개적으로 표시되는 형식 또는 멤버에 대한 XML 주석이 없습니다. XML 주석에…에는 '…'에 대한 param 태그가 있지만 해당 이름의 매개 변수가 없습니다. 매개 변수 '…'에는 '…'에 대한 XML 주석에 param 태그와 일치하지 않습니다 (그러나 다른 매개 변수는) 솔루션

Visual Studio에서 모든 경고를 표시하지 않을 수 있습니다.

  • Visual Studio 프로젝트 / 속성 / 빌드 탭을 마우스 오른쪽 버튼으로 클릭하십시오.

  • "억제 경고"에 다음 경고 번호를 입력하십시오. 1591,1572,1571,1573,1587,1570


XML 주석을 삽입하십시오. ;-)

/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
    get;
    set;
}

언뜻보기에 농담처럼 보일 수 있지만 실제로 유용 있습니다. 나에게 개인적인 방법으로도 어떤 방법을 사용하는지 생각하는 것이 도움이되는 것으로 판명되었습니다 (물론 사소한 것이 아니라면).


코드 변경이나 pragma 블록 없이도 이러한 메시지를 억제 할 수있는 또 다른 방법이 있습니다. Visual Studio 사용-프로젝트 속성> 빌드> 오류 및 경고> 경고 표시 안 함으로 이동-경고 코드 목록에 1591을 추가하십시오.

여기에 이미지 설명을 입력하십시오


XML 문서 파일이 프로젝트 속성에 지정되어 있고 메서드 / 클래스가 공개되어 문서가 없기 때문입니다.
다음 중 하나를 수행 할 수 있습니다.

  1. XML 문서를 비활성화하십시오.

    프로젝트-> 속성-> '빌드'탭을 마우스 오른쪽 버튼으로 클릭하고 XML 문서 파일을 선택 취소하십시오.

  2. 앉아서 직접 문서를 작성하십시오!

XML 문서 요약은 다음과 같습니다.

/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..

여기에 나열된 답변에 무언가를 추가하고 싶었습니다.

Isak이 지적했듯이 XML 설명서는 Visual Studio 내의 모든 소비자에게 인텔리전스를 제공하므로 클래스 라이브러리에 유용합니다. 따라서 쉽고 정확한 솔루션은 자체 프로젝트 외부에서 구현되지 않는 최상위 프로젝트 (UI 등)의 문서를 간단히 끄는 것입니다.

또한 경고는 공개적으로 보이는 회원 에게만 표시됩니다 . 따라서 필요한 것만 공개하도록 클래스 라이브러리를 설정하면 문서화 privateinternal멤버 없이도 얻을 수 있습니다 .


나는 이것이 정말로 오래된 스레드라는 것을 알고 있지만 Google의 첫 번째 반응 이므로이 정보를 추가 할 것이라고 생각했습니다.

이 동작은 "프로젝트 속성"-> "빌드"에서 경고 수준이 4로 설정된 경우에만 발생합니다 . 실제로 많은 정보가 필요하지 않은 경우 3으로 설정할 수 있으며 이러한 경고를 제거 할 수 있습니다. 물론 경고 수준을 변경하면 주석 이상의 내용에 영향을 미치므로 누락 될 내용이 확실하지 않은 경우 설명서를 참조하십시오.
https://msdn.microsoft.com/en-us/library/thxezb7y.aspx


솔루션에서 XML 문서 파일을 생성하는 옵션을 확인하면 XMLDoc이 있는지 여부에 대한 공개 멤버 확인이 시작됩니다. 그렇지 않은 경우 각 요소마다 경고가 표시됩니다. 실제로 DLL을 해제하고 싶지 않고 설명서가 필요하지 않은 경우 솔루션으로 이동하여 섹션을 작성하고 끄십시오. 필요한 경우 채우십시오. 중요하지 않은 경우 속성과 필드, 사전 컴파일러 지시 사항 #pragma warning disable 1591능가 하여 경고를 복원 할 수도 있습니다.#pragma warning restore 1591

pragma 사용법 : 컴파일러 경고를 받기 전에 코드의 어느 위치에 ... (파일의 경우 헤더에 넣고 다시 클래스를 감싸거나 클래스를 감싸는 단일 클래스 또는 메소드 랩을 위해 다시 활성화 할 필요가 없습니다. 메소드 또는 ... 당신은 그것을 감쌀 필요가 없으며, 그것을 호출하고 우연히 복원 할 수 있습니다 (파일 시작에서 시작하여 메소드 내부에서 끝남))이 코드를 작성하십시오 :

#pragma warning disable 1591 복원해야 할 경우 다음을 사용하십시오. #pragma warning restore 1591

예를 들면 다음과 같습니다.

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using RealEstate.Entity.Models.Base;

namespace RealEstate.Models.Base
{
    public class CityVM
    {

#pragma warning disable 1591

        [Required]
        public string Id { get; set; }

        [Required]
        public string Name { get; set; }

        public List<LanguageBasedName> LanguageBasedNames { get; set; }

        [Required]
        public string CountryId { get; set; }

#pragma warning restore 1591

        /// <summary>
        /// Some countries do not have neither a State, nor a Province
        /// </summary>
        public string StateOrProvinceId { get; set; }
    }
}

참고 상기에서 Pragma 지시자의 시작은 라인의 시작 있음


#pragma warning disable 1591
#pragma warning disable 1591
#pragma warning disable 1572
#pragma warning disable 1571
#pragma warning disable 1573
#pragma warning disable 1587
#pragma warning disable 1570

경고 수준을 2로 설정하면이 메시지가 표시되지 않습니다. 유용한 경고를 표시하지 않으므로 최상의 솔루션인지 알 수 없습니다.


Jon Skeet의 답변은 VisualStudio로 구축 할 때 유용합니다. 그러나 명령 줄 (내 경우에는 Ant를 통해)을 통해 sln을 작성하는 경우 msbuild가 sln supression 요청을 무시한다는 것을 알 수 있습니다.

이것을 msbuild 명령 줄에 추가하면 문제가 해결되었습니다.

/p:NoWarn=1591

파일 > 편집 > 프로젝트보기 (클릭)

드롭 다운 보우의 맨 아래 ( 열기 / 현재 작업 > 속성 클릭 )의 "출력"아래 "빌드"에서 프로젝트 속성 페이지를여십시오. XML 문서 확인란을 "선택 취소하십시오" .

재 구축 및 경고 없음.


경고가 표시되는 멤버에 대해 /// 주석을 추가해야합니다.

아래 코드를 참조하십시오

public EventLogger()
{
    LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}

공개적으로 보이는 유형 또는 멤버 '.EventLogger ()'에 대한 XML 주석 누락 경고를 표시합니다.

나는 회원에 대한 의견을 추가하고 경고가 사라졌습니다.

///<Summary>
/// To write a log <Anycomment as per your code>
///</Summary>
public EventLogger()
{
    LogFile = string.Format("{0}{1}", LogFilePath, FileName);
}

메소드에 속성을 첨부 한 후 해당 메시지를 받았습니다

[webMethod]
public void DoSomething()
{
}

그러나 올바른 방법은 다음과 같습니다.

[webMethod()] // Note the Parentheses 
public void DoSomething()
{
}

참고 URL : https://stackoverflow.com/questions/203863/missing-xml-comment-for-publicly-visible-type-or-member



반응형