我正在尝试创建一个REST服务来管理一些数据库表,因为我是C#和.NET的新手,我从阅读教程开始,我遇到了这个好的起点tut http://www.codeproject.com/Articles/426769/Creating-a-REST-service-using-ASP-NET-Web-API
它显示了我如何创建一个控制器,在这种情况下处理一个简单的任务列表,所以我想为每个表创建一个控制器并为每个表实现GET,POST,PUT等
我现在的问题是在Global.asax.cs文件中,我有这个
GlobalConfiguration.Configuration.ServiceResolver.SetResolver
(
t =>
{
if (t == typeof(TasksController))
{
return new TasksController(new TaskRepository());
}
return null;
},
t => new List<object>()
);
初始化我的依赖项,但是......
首先,出于某种原因(我认为它与框架版本有关)ServiceResolver类不存在为什么?和
第二,即使存在如何我需要编写代码来创建和初始化其余的控制器?
t =>
{
if (t == typeof(TasksController))
{
return new TasksController(new TaskRepository());
}
if (t == typeof(OtherController))
{
return new OtherController();
}
if (t == typeof(OneMoreController))
{
return new OneMoreController();
}
return null;
}
也许??
感谢您对此提供任何帮助!!
答案 0 :(得分:1)
该代码严重过时。它基于Web API的预览版本。在Web API的最终版本中,依赖注入的正确配置挂钩是
config.DependencyResolver = new MyDependencyResolver();
public class MyDependencyResolver : IDependencyResolver
{
public IDependencyScope BeginScope()
{
// return a different instance if you want to dispose resources
return this;
}
public object GetService(Type serviceType)
{
if (t == typeof(TasksController))
{
return new TasksController(new TaskRepository());
}
if (t == typeof(OtherController))
{
return new OtherController();
}
if (t == typeof(OneMoreController))
{
return new OneMoreController();
}
return null;
}
public IEnumerable<object> GetServices(Type serviceType)
{
return null;
}
public void Dispose()
{
}
}