2015-02-04 8 views
12

Ho un progetto API Web ASP.NET e desidero aggiungere una pagina di Guida, ma desidero che si trovi in ​​un progetto separato.Pagina di aiuto dell'API Web ASP.NET in un progetto separato

È possibile?

+0

Naturalmente è possibile, le pagine di aiuto lavorare su documentazione XML a cui si fornisce il percorso. Ma un progetto generalmente è una applicazione web. Vuoi la pagina di aiuto su una porta diversa durante lo sviluppo e in una diversa applicazione su IIS? Puoi spiegare un po 'di più sul tuo obiettivo esatto? – CodeCaster

+0

Non voglio confondere il mio progetto API Web con tutte le risorse necessarie per la pagina della Guida, che è il motivo principale per cui desidero che il mio codice per la pagina della Guida sia in un progetto separato. – koryakinp

+0

La pagina di aiuto viene creata nella propria area. Se ti attacchi con l'area e metti le risorse in quell'area, il tuo progetto non dovrebbe essere incasinato. –

risposta

0

È possibile riscrivere XmlDocumentationProvider costruttore per una cosa del genere:

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()); 
    } 
} 

Esso comprenderà tutti i file di documentazione XML che si elencare nella matrice. Dovresti anche assicurarti che il tuo progetto API Web di destinazione (e tutti i progetti del modello, se necessario) generi documentazione sulla build e copi nel posto giusto. enter image description here

1

Si dovrebbe chiamare WebApiConfig.Register dal progetto API Web nel progetto di aiuto:

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