2014-12-05 15 views
6

Quali sono tutti i ganci nella classe di avvio OWIN? Le informazioni su questi sono scarse.Anatomia di una partenza OWIN

Ad esempio, un hook richiesto per ogni classe di avvio è che dovrebbe avere un metodo Configuration. Queste informazioni possono essere raccolte dal Microsoft documentation.

class Startup 
{ 
    public void Configuration(IAppBuilder appBuilder) 
    { 
     ... 
    } 
} 

Qual è la logica dietro non avere una classe IOwinStartup interfaccia o OwinStartup base nel quadro?

interface IOwinStartup 
{ 
    void Configuration(IAppBuilder appBuilder); 
} 

Come si esegue la pulizia della mia applicazione basata su OWIN? OWIN rileva un metodo Dispose nella classe Esecuzione automatica, simile a come rileva un metodo Configuration?

Dopo molte ricerche ho trovato questa domanda correlata: In self-hosted OWIN Web API, how to run code at shutdown? Non è chiaro come i cittadini che hanno risposto a quella domanda siano arrivati ​​alle informazioni necessarie. Mi manca la documentazione critica o questi dettagli della classe di avvio OWIN sono elusivi come sembrano?

risposta

3

Non è tanto un "gancio" quanto una convenzione. C'è un buon articolo su questo qui:

http://www.asp.net/aspnet/overview/owin-and-katana/owin-startup-class-detection

Per quanto riguarda il motivo per cui non v'è alcuna interfaccia, molto probabilmente è perché non vi era alcuna necessità di bloccare il basso a quel livello. Questo è in gran parte basato sulla riflessione, ed è possibile specificare la classe e il metodo da utilizzare per l'avvio da vari parametri di configurazione.

Nel caso di WebAPI nell'esempio a cui ci si collega, è possibile farlo nel metodo WebApp.Start e specificare StartOptions con il nome del metodo da utilizzare, ma la convenzione è Configurazione.

La pulizia può essere eseguita ottenendo il token di annullamento. Questa informazione è nella documentazione, che è collegata agli esempi che mostri. Non sono sicuro di capire come arrivi alla conclusione che manca la documentazione quando chiaramente non lo è.

http://msdn.microsoft.com/en-us/library/microsoft.owin.builderproperties.appproperties.onappdisposing(v=vs.113).aspx

Certo, è l'elaborazione ed esempi manca ... ma ci sono un sacco di voci di blog su questa roba ...

Si consiglia inoltre di leggere le specifiche OWIN:

http://owin.org/spec/spec/owin-1.0.0.html

+3

Queste frasi nella specifica OWIN hanno risolto molte cose: "OWIN è definito in termini di una struttura delegata." Nessun assembly chiamato OWIN.dll o simile. Implementazione dell'host o dell'applicazione lato la specifica OWIN non introduce una dipendenza da un progetto. " La "Startup class with Configuration method" è solo una convenzione per fornire un 'Action '. Questo è tutto nella sua interezza. Grazie per aver chiarito la mia confusione. –