답변:
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 의 사본을 구하는 것이 좋습니다 . 문서화가 훨씬 쉬워집니다.
GhostDoc
-내가 본 것 중 가장 어리석은 AddOn. 문서를 생성합니다. 이제 생각을 잠시 멈추십시오. 메소드 이름 및 인수 유형만을 기반으로 문서를 생성하는 도구를 사용하도록 코드를보다 이해하기 쉽기를 원합니다. 당신에게 이치에 맞습니까? 사용자는 인수의 이름과 유형을보고 주석을 추가 할 수 있습니다 DateTime date
- 날짜가 정말 도움이되지 않습니다.
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
코드 변경이나 pragma 블록 없이도 이러한 메시지를 억제 할 수있는 또 다른 방법이 있습니다. Visual Studio 사용-프로젝트 속성> 빌드> 오류 및 경고> 경고 표시 안함-경고 코드 목록에 1591을 추가하십시오.
#pragma warning disable
어디에서나 코드베이스를 흩어 버릴 수 없습니다.
XML 주석을 삽입하십시오. ;-)
/// <summary>
/// Describe your member here.
/// </summary>
public string Something
{
get;
set;
}
언뜻보기에 농담처럼 보일 수 있지만 실제로 유용 할 수 있습니다. 나에게 개인적인 방법으로도 어떤 방법을 사용하는지 생각하는 것이 도움이되는 것으로 판명되었습니다 (물론 사소한 것이 아니라면).
XML 문서 파일이 프로젝트 속성에 지정되어 있고 메서드 / 클래스가 공개되어 문서가 없기 때문입니다.
다음 중 하나를 수행 할 수 있습니다.
프로젝트-> 속성-> '빌드'탭을 마우스 오른쪽 버튼으로 클릭하고 XML 문서 파일을 선택 취소하십시오.
XML 문서 요약은 다음과 같습니다.
/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..
나는 이것이 정말로 오래된 스레드라는 것을 알고 있지만 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 지시자의 시작은 라인의 시작 있음
경고 수준을 2로 설정하면이 메시지가 표시되지 않습니다. 유용한 경고를 표시하지 않으므로 최상의 솔루션인지 알 수 없습니다.
파일 > 편집 > 프로젝트보기 (클릭)
드롭 다운 보우의 맨 아래 ( 열기 / 현재 작업 > 속성 클릭 )의 "출력"아래 "빌드"에서 프로젝트 속성 페이지를여십시오. 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);
}