2012-10-27 3 views
0

기본적으로 모든 문서를 별도의 파일에 보관하고 <include> 태그를 사용하려고했습니다. 이렇게하면 내 소스 코드를 문서 혼란으로부터 자유롭게 할 수 있습니다. 나는 여전히 클래스와 멤버에 대한 개발자 노트가 있기를 원했기 때문에 <devdoc> 태그를 사용했다. 문제는 이제 Visual Studio에서 내 개발자 노트를 XML 문서 파일에 추가합니다. xml 문서로 컴파일하지 않는 방법이 있습니까? 결과컴파일 할 때 Visual Studio에서 <devdoc> 태그를 무시하는 방법이 있습니까?

/// <devdoc>This is an interesting Foo class</devdoc> 
/// <include file="docs.xml" path='Doc/Member[@for="MyNamespace.Foo"]/*' /> 
public class Foo { ... } 

:

<member name="T:MyNamespace.Foo"> 
    <devdoc>This is an interesting Foo class</devdoc> 
    <Summary>Some summary for testing.</Summary> 
</member> 

나는 샌드캐슬은 그것의 문서를 생성 할 때 <devdoc> 클래스를 사용하지 않을 것을 알지만 내 라이브러리에 대한 인텔리 정보를 제공하려는 경우 생성 된 XML 파일을 포함시켜야합니다. 그것이 불가능하다면, 그것은 세상의 종말은 아니지만, 나는 그것을 배제하는 방법이 있기를 희망합니다.

답변

0

빌드 후 이벤트에서 호출 될 간단한 콘솔 응용 프로그램을 만들 것입니다. 응용 프로그램은 모든 <devdoc> 태그를 제거합니다. 정말 간단 할 수 있습니다. 그냥 생성 된 XML 파일을 읽고 다음과 같은 정규식을 사용 : 당신은 또한을 XmlDocument하고 GetElementsByTagName 방법을 사용하고 태그를 제거하는 XmlNode.RemoveChild 수

using System.Text.RegularExpressions; 

Regex regex = new Regex("<devdoc>(.|\n)*</devdoc>", RegexOptions.Compiled | RegexOptions.Multiline); 
s = regex.Replace(s, string.Empty); 

. 하지만 정규식이 더 효율적이라고 생각합니다.