2015-02-04 10 views
12

Ich habe ASP.NET Web API-Projekt, und ich möchte eine Hilfeseite hinzufügen, aber ich möchte, dass es in einem separaten Projekt ist.ASP.NET Web API Hilfeseite unter separatem Projekt

Ist es möglich?

+0

Natürlich können Sie, Hilfeseiten arbeiten auf XML-Dokumentation zu dem Sie den Pfad zur Verfügung stellen. Aber ein Projekt ist im Allgemeinen eine Webanwendung. Möchten Sie die Hilfeseite während der Entwicklung und in einer anderen Anwendung auf IIS auf einem anderen Anschluss? Kannst du etwas mehr über dein genaues Ziel erklären? – CodeCaster

+0

Ich möchte mein Web-API-Projekt nicht mit allen Ressourcen durcheinander bringen, die für die Hilfeseite erforderlich sind. Das ist der Hauptgrund, warum ich möchte, dass sich mein Code für die Hilfeseite in einem separaten Projekt befindet. – koryakinp

+0

Die Hilfeseite wird in einem eigenen Bereich erstellt. Wenn Sie bei der Region bleiben und die Ressourcen in diesen Bereich legen, sollte Ihr Projekt nicht durcheinander gebracht werden. –

Antwort

0

Sie können neu schreiben XmlDocumentationProvider Konstruktor etwas wie folgt aus:

public XmlDocumentationProvider(string appDataPath) 
{ 
    if (appDataPath == null) 
    { 
     throw new ArgumentNullException(nameof(appDataPath)); 
    } 

    var files = new[] { "MyWebApiProject.xml" /*, ... any other projects */ }; 
    foreach (var file in files) 
    { 
     var xpath = new XPathDocument(Path.Combine(appDataPath, file)); 
     _documentNavigators.Add(xpath.CreateNavigator()); 
    } 
} 

es alle XML-Dokumentationsdateien enthalten, die Sie in der Array-Liste. Sie sollten außerdem sicherstellen, dass das Ziel-Web-API-Projekt (und alle Modellprojekte, falls erforderlich) Dokumentation zum Build generiert und an den richtigen Speicherort kopiert. enter image description here

1

Sie sollten WebApiConfig.Register von Ihrem Web-API-Projekt in Ihrem Hilfeprojekt nennen:

protected void Application_Start() 
    { 
    AreaRegistration.RegisterAllAreas(); 
    RouteConfig.RegisterRoutes(RouteTable.Routes); 
    GlobalConfiguration.Configure(MyApiProjectNamespace.WebApiConfig.Register); 
    } 
Verwandte Themen