2014-04-20 8 views
5

Próbujemy przenieść się z CTP Roslyn do najnowszego wydania Roslyn. Ale wydaje się, że zaktualizowali logikę DocumentationProvider. W CTP użyto klasy DocumentationComment, która została zwrócona przez tego dostawcę. Ta klasa ma użytecznych logikę analizowania XML dla tych właściwościDlaczego zespół Roslyn oznaczył DocumentationComment jako wewnętrzny

public string FullXmlFragmentOpt { get; private set; } 

public string ExampleTextOpt { get; private set; } 

public string SummaryTextOpt { get; private set; } 

public string ReturnsTextOpt { get; private set; } 

W nowej wersji Roslyn DocumentationComment klasy została poprawa o nowych właściwościach, ale jakoś to zostało oznaczone jako internal. A teraz DocumentationProvider zwraca tylko cały łańcuch z treścią XML. A ponieważ DocumentationComment jest klasą wewnętrzną - nie możemy jej użyć.

Czy istnieje powód, dla którego zespół Roslyn to zrobił? A może zamierzają go zwrócić w następnym wydaniu?

+0

Jedyną osobą, która jest w stanie udzielić odpowiedzi na temat motywacji zespołu, będzie członek zespołu. – Crippledsmurf

+3

Tak, zgadzam się. dlatego pytam tutaj o znaczniki Roslyn. Może ktoś z zespołu przeczyta to pytanie i poda szczegóły. –

+2

Wysłałem e-mail do kilku osób, które mogą pamiętać lepiej niż ja. Patrząc na historię kontroli źródła, najlepiej mogę powiedzieć, że jest to niedopatrzenie, ale to nie jest tak naprawdę "odpowiedź" ... –

Odpowiedz

4

Klasa DocumentationComment została przeniesiona z warstwy kompilatora i wprowadzona wewnętrznie, ponieważ uznano ją za niewystarczającą do opisania wszystkich szczegółów w komentarzu do dokumentacji, ponieważ zawierała ona inne fragmenty, takie jak zobacz i cref, i może w rzeczywistości zawierać dowolne elementy. inny tag XML, który chciałeś. Jedyną strukturą, która miała sens w ramach publicznego interfejsu API, był ciąg xml, z którego można skorzystać z czytnika xml lub DOM, aby go rozdzielić. Tak jak obecnie, klasa DocumentationComment jest szczegółem implementacji pojedynczej funkcji Roslyn.

Ponieważ jest to oprogramowanie open source, możesz z niego korzystać, jeśli chcesz, kopiując kod. Faktyczna klasa wewnętrzna może ulec zmianie, a nawet może zostać usunięta.

+0

Mam to. Dziękuję bardzo za wyjaśnienie szczegółów! –