2

我想从我的 Global.asax 中的 Owin IAppBuilder 实例中检索一个属性。我能想到的唯一方法是将 MapOwinPath 与我不关心的路径一起使用,以利用回调(参见下面的示例)。是否有一种更简洁的方式来访问 IAppBuilder 实例而无需注册假路由?

public static class HostingUtils
{
    private static readonly Lazy<CancellationToken> shutdownToken = new Lazy<CancellationToken>(GetOwinShutdownToken);

    public static CancellationToken ShutdownToken { get { return shutdownToken.Value; } }

    private static CancellationToken GetOwinShutdownToken()
    {
        CancellationToken? token = null;

        new RouteCollection().MapOwinPath("hack", "hack",
            map => token = map.Properties["host.OnAppDisposing"] as CancellationToken?);

        return token.GetValueOrDefault(CancellationToken.None);
    }
}
4

0 回答 0