C #의 인터페이스에서 XML 주석 상속


78

인터페이스 xml 주석을 구현에 연결하는 방법을 아는 사람이 있는지 궁금합니다. 문제는 기본 주석이 내 인터페이스에서 먼저 나오기를 원한다는 것입니다. 예:

interface myinterface {

       /// <summary>
       /// Does something.
       /// </summary>
       void method1(string foo);

}

구현은 다음과 같습니다.

public class myclass : myinterface {


       public void method1(string foo) {
             //do something...
       }
}

이제 개체를 인스턴스화 한 후 마우스로 메서드 위로 마우스를 가져 가면 :

myclass foo = new myclass();
foo.method1("do something");

마우스 오버 팝업에 댓글을 표시하려면 어떻게해야합니까? 인터페이스 주석을 구현에 연결할 수있는 방법이 있습니까? Java에 방법이 있다는 것을 알고 있지만 C #에 대한 솔루션을 찾을 수 없습니다.

감사


14
+1
대단한

3
나는 항상 이것에 대해 궁금해했습니다. 문서를 상속하기 위해 클래스에 추가 할 수있는 속성이 있어야합니다.
BentOnCoding 2011


무엇 VS에서 이상한 생략 : /
nawfal

VS 여러분, 실제 메서드에서 사용할 수없는 경우 인터페이스에서 요약을 표시 할 수 있습니까?
Arjun_TECH

답변:


18

XML 주석을 링크하는 것은 IMHO가 불가능하지만 GhostDoc 과 같은 도구를 사용 하여 인터페이스 / Baseclass에서 구현 / 파생 클래스로 XML 주석을 복사 할 수 있습니다 .


1
예, GhostDoc을 사용하십시오. 먼저 부모 클래스 또는 메서드가 재정의되었는지 확인하고 그럴 경우 주석을 복사합니다. ReSharper는 또한 새로운 슈퍼 클래스 / 인터페이스를 추출하거나 계층 구조에서 멤버를 위 / 아래로 밀어내는보다 제한된 범위에서 xml-doc 주석을 복사합니다.
KeithS

Pro 버전이 필요하지 않습니까? 한 번에 한 명의 멤버를 수행하여 비 Pro 버전에서만이 작업을 수행 할 수 있으며 클래스 수준에서는 작동하지 않습니다.
Keith

1
ReSharper도이 작업을 수행 할 수 있으므로 이미 소유하고있는 경우 상속 된 메서드 / 속성 위에 커서를 놓고을 누르고 ALT+RETURN"기본에서 주석 복사"를 수행 할 수 있습니다. ReSharper는 매일 저를 놀라게합니다! :-)
itmuckel jul.

9

XMLDoc은 <include />Visual Studio 2003 이후로 사용 된 다른 파일의 주석을 포함하기위한 태그 를 정의합니다 . 가장 큰주의 사항은 참조 된 파일이 다른 소스 파일이 아닌 XMLDoc 문서 만 포함하는 파일이어야한다는 것입니다.

자세한 내용 은 MSDN 페이지 를 참조하십시오.


1
답은 아니지만 정말 유용한 정보입니다. 감사합니다
Basic

7

GhostDoc 을 사용 하면 인터페이스에서 구현 코드로 문서를 "전송"하는 데 많은 도움이됩니다.


1
이 작업을 수행하는 방법에 대한 모든 팁 (방금 ghost doc v4를 설치했습니다). 아니면 프로 / 무료 버전인가요?
Konstantin

1
@Konstantin 저는 항상 무료 버전을 사용했으며 이런 일이 발생하도록 특정 작업을 한 적이 없습니다. 인터페이스에 문서를 작성한 다음 구현 클래스 (메소드에 아직 문서가 없음)의 메서드에 대해 CTRL + D를 누르면 인터페이스의 해당 메서드에서 복사됩니다. 적어도 그것은 (현재 프로젝트에서 GhostDoc을 사용하지 않고) 그렇게 작동했습니다.
Fredrik Mörk

2
감사는 요즘 프로 버전의 특징 인 것 같습니다.
Konstantin

6 년 후, 방금 Ghostdoc Community (무료)를 사용해 보았습니다. 인터페이스에 문서를 작성하고 ///구현 클래스의 메서드 위에 입력하기 만하면 됩니다.
Michaël Polla


0

http://blog.x-tensive.com/2008/02/fixml.html

원래 문서 시스템이 부족한 특정 추가 옵션이있는 포스트 프로세서입니다.

웹 사이트에서 :

간단한 요약:

FiXml은 C # \ Visual Basic.Net에서 생성 한 XML 문서의 포스트 프로세서입니다. 다음 언어로 XML 문서를 작성하는 것과 관련된 가장 성가신 경우를 해결합니다.-기본 클래스 또는 인터페이스에서 문서 상속을 지원하지 않습니다. 즉, 재정의 된 멤버에 대한 문서는 처음부터 작성해야하지만 일반적으로 적어도 일부를 상속하는 것이 바람직합니다. - "이 유형은 싱글 톤입니다. 속성을 사용하여 유일한 인스턴스를 가져옵니다."또는 "새 클래스 인스턴스를 초기화합니다."와 같이 일반적으로 사용되는 문서 템플릿의 삽입을 지원하지 않습니다.


X-Tensive FiXml이 소스 파일을 변경하려는 것인지 아니면 출력 XML 문서 만 변경할 것인지 아는 사람이 있습니까? 아-이제 Xtensive.MSBuildTasks x-tensive.com/Downloads/?Path=Freeware \ Xtensive.MSBuildTasks의 일부로 약간 다른 위치에서 발견되었습니다 )
kpollock

0

<inheritdoc /> 태그에 대한 지원을 추가하여 XML 문서 파일을 후 처리하는 명령 줄 도구를 만들었습니다.

소스 코드의 Intellisense에는 도움이되지 않지만 수정 된 XML 문서 파일을 NuGet 패키지에 포함 할 수 있으므로 참조 된 NuGet 패키지의 Intellisense와 함께 작동합니다.

자세한 내용은 www.inheritdoc.io 를 참조하십시오 (무료 버전 사용 가능).


1
이 태그를 많이 사용하지만이를 위해 타사 시스템을 설치 한 기억이 없습니다. 아무도 언급하지 않는 것이 이상합니다.
Lopsided
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.