Die ASP.NET-Web-API-Hilfeseite kann den generischen Typ-Controller nicht verarbeiten

8

Ich habe eine Frage zu ASP.NET Web API HelpPages.

Normalerweise kann HelpPages die WebAPI durch XMLDocumentation erzeugen Beispielcode:

%Vor%

Dies kann erfolgreich wie folgt generiert werden:

%Vor%

Wenn ich jedoch einen generischen Basis-Controller verwende, wird das API-Dokument nicht erzeugt.

Beispiel:

%Vor%

Wenn ich den Code im zweiten Abschnitt verwende, kann HelpPages das API-Dokument generieren, generiert aber nicht die API-Annotation. Der Unterschied zwischen meinen beiden Beispielen ist nur zweiter Abschnitt Code einen generischen Typ verwenden.

%Vor%

In der Methode Do() wird die Annotation nicht im Vergleich zum ersten

angezeigt

Gibt es eine Lösung, um diese Probleme zu beheben?

    
user3764380 22.06.2014, 09:46
quelle

1 Antwort

12

Ich konnte das lösen, indem ich einen Code in XmlDocumentationProvider anpasste.

Die ursprüngliche Implementierung von XmlDocumentationProvider.GetTypeName(Type) ist die folgende:

%Vor%

Ich weiß nicht warum, aber sie versuchen, den Typnamen für die XML-Suche so zu erstellen, dass sie die eigentlichen generischen Attribute und nicht den generischen Typnamen selbst enthält (z. B. erstellen sie Nullable {bool} statt Nullable ' 1). Nur der generische Name selbst ist in der XML-Datei definiert.

Eine einfache Änderung am Code bewirkt, dass die Dokumentation für die generische Klasse richtig benannt / referenziert wird:

%Vor%

Nachdem diese Änderung vorgenommen wurde, wurden die Annotationen für Generiktypen korrekt angezeigt, und für mich hat dies auch nichts anderes verändert.

    
Nathan A 19.12.2014 16:52
quelle