在我提出问题之前,我已经阅读了以下帖子:
这是我项目的文件夹布局:
Startup.cs
using System;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(Bootstrapper.Startup))]
namespace Bootstrapper
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.Run(async context =>
{
await context.Response.WriteAsync(GetTime() + " My First OWIN App");
});
}
string GetTime()
{
return DateTime.Now.Millisecond.ToString();
}
}
}
Run Code Online (Sandbox Code Playgroud)
Web.config文件
<appSettings>
<add key="owin:AutomaticAppStartup" value="true" />
<add key="owin:appStartup" value="Bootstrapper.Startup" />
<add key="webpages:Version" value="2.0.0.0" />
<add key="webpages:Enabled" value="false" />
<add key="PreserveLoginUrl" value="true" /> …Run Code Online (Sandbox Code Playgroud) 使用katana,为什么Startup类不应该实现相应的接口,例如:
interface IStartup
{
void Configuration(IAppBuilder app);
}
public class MyStartup : IStartup
{
public void Configuration(IAppBuilder app)
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
我认为开发人员可以更直观地了解他们应该为WebApp.Start<T>方法提供什么作为T参数而不是猜测和寻找示例,它应该更明确:
public void Start<T>() where T : IStartup
Run Code Online (Sandbox Code Playgroud)