【问题标题】:Anatomy of an OWIN StartupOWIN 初创公司剖析
【发布时间】:2014-12-05 04:42:57
【问题描述】:

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 类的这些细节是否像看起来那样难以捉摸?

【问题讨论】:

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


    【解决方案1】:

    这与其说是一个“钩子”,不如说是一个约定。这里有一篇很好的文章:

    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

    【讨论】:

    • OWIN 规范中的这些句子清楚地说明了很多问题:“OWIN 是根据委托结构定义的。没有名为 OWIN.dll 或类似的程序集。实现主机或应用程序端OWIN 规范不会向项目引入依赖项。” “带有配置方法的启动类”只是提供Action<IAppBuilder> 的约定。这就是它的全部。感谢您消除我的困惑。
    猜你喜欢
    • 2011-02-15
    • 1970-01-01
    • 2010-09-21
    • 2016-05-28
    • 2013-01-25
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    相关资源
    最近更新 更多