2014-12-05 45 views
6

OWIN Startup類的所有鉤子是什麼?這些信息很少。OWIN Startup的剖析

例如,每個Startup類中的一個必需鉤子應該有一個Configuration方法。這些信息可以從Microsoft documentation收集。

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

什麼是落後具有框架的IOwinStartup接口或OwinStartup基類的理由?

interface IOwinStartup 
{ 
    void Configuration(IAppBuilder appBuilder); 
} 

如何爲基於OWIN的應用程序執行清理? OWIN是否在啓動類中檢測到Dispose方法,類似於它如何檢測Configuration方法?

經過大量的搜索,我發現這個相關的問題:In self-hosted OWIN Web API, how to run code at shutdown?目前還不清楚回答這個問題的人是如何得到必要的信息。我是否錯過了關鍵文檔,或者OWIN Startup類的這些細節是否像他們看起來那樣難以捉摸?

回答

3

這不是一個「鉤」,因爲它是一個約定。在燈架上有一個在這裏很好的文章:

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

至於爲什麼沒有接口,最有可能是因爲沒有必要將其鎖定到那個水平。這主要是基於反射的,您可以通過各種配置參數指定用於啓動的類和方法。

對於您鏈接到的示例中的WebAPI,您可以在WebApp.Start方法中執行此操作,並使用要使用的方法的名稱指定StartOptions,但約定爲Configuration。

清理可以通過獲取取消令牌來完成。這些信息位於文檔中,與您展示的示例相關聯。我不確定我是否理解你是如何得出結論,即當文件顯然不存在時文件丟失。

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

當然,它缺少制定和例子......但是也有很多關於這個東西的博客文章...

您可能還需要閱讀OWIN規格:

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

+3

OWIN規範中的這些句子清除了很多東西:「OWIN是根據委託結構定義的,不存在名爲OWIN.dll或類似的程序集,實現主機或應用程序OWIN規範不會引入對項目的依賴。「 「配置方法啓動類」只是提供「Action 」的慣例。這就是完整的。謝謝你清理我的困惑。 – 2014-12-05 14:57:07