【发布时间】:2015-08-06 17:51:52
【问题描述】:
我有一个控制台应用程序,它使用 Simple Injector 托管 WebApi(OWIN) 项目,根据documentation,我必须添加几行代码才能使其工作。
但在我的情况下,即使没有该配置,它也可以工作,所以问题是: 我做错了什么以及为什么会起作用?
对我来说有两种选择: 我的事情是最近修复了一些东西并且文档不是最新的 或者 其实我做错了,以后可能会出很多问题。
这是我的代码:
class Program
{
static void Main(string[] args)
{
var disposable = WebApp.Start<Startup>("http://localhost:8085");
Console.WriteLine("Server Started; Press enter to Quit");
Console.ReadLine();
}
}
public class Startup
{
// This method is required by Katana:
public void Configuration(IAppBuilder app)
{
var container = new Container();
//app.Use(async (context, next) => {
// using (container.BeginExecutionContextScope())
// {
// await next();
// }
//});
container.RegisterWebApiRequest<ITestRepo, TestRepo>();
//container.RegisterWebApiControllers(GlobalConfiguration.Configuration);
container.Verify();
var config = ConfigureWebApi();
config.DependencyResolver =
new SimpleInjectorWebApiDependencyResolver(container);
//WebApiConfig.Register(config);
app.UseWebApi(config);
}
private HttpConfiguration ConfigureWebApi()
{
var config = new HttpConfiguration();
HttpRouteCollectionExtensions.MapHttpRoute(config.Routes, "DefaultApi", "api/{controller}/{id}", new { id = RouteParameter.Optional });
return config;
}
控制器:
public class CompaniesController : ApiController
{
private readonly ITestRepo _repo;
public CompaniesController(ITestRepo repo)
{
_repo = repo;//i get it here...
}
}
它可以正常工作吗 谢谢 伊霍尔
【问题讨论】:
标签: c# asp.net-web-api2 owin simple-injector