OWIN初创公司的剖析

时间:2014-12-05 04:42:58

标签: c# .net asp.net-web-api2 owin

OWIN Startup类的所有钩子是什么?关于这些的信息很少。

例如,每个Startup类的一个必需钩子是它应该有Configuration方法。可以从Microsoft documentation收集此信息。

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

框架中有IOwinStartup接口或OwinStartup基类背后的理由是什么?

interface IOwinStartup
{
    void Configuration(IAppBuilder appBuilder);
}

如何为基于OWIN的应用程序执行清理? OWIN是否在Startup类上检测到Dispose方法,类似于它检测Configuration方法的方法?

经过大量的搜索,我发现了这个相关的问题:In self-hosted OWIN Web API, how to run code at shutdown?目前尚不清楚回答这个问题的人是如何获得必要信息的。我是否缺少关键文档,或者OWIN Startup类的这些细节看起来难以捉摸?

1 个答案:

答案 0 :(得分:4)

这不是一个“钩子”,因为它是一个惯例。这里有一篇很好的文章:

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