2013-02-06 53 views
0

我想创建一个REST服务来管理一些数据库表,所以因为我是C#和.NET新手我开始阅读教程,我遇到了这个好的开始点啧啧 http://www.codeproject.com/Articles/426769/Creating-a-REST-service-using-ASP-NET-Web-API.net web api RESTFul Web服务引导

它显示我怎么能创造出一些控制,在这种情况下,一个简单的任务列表处理,所以我想创建每个表一个控制器和执行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; 
} 

也许?? ??

感谢您的任何帮助!

回答

1

该代码严重过时。它基于Web API的预览版本。在网络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() 
    { 
    } 
} 
+0

感谢您的答复,这个代码应该是在global.asa文件?也是我可以看到这种语法?你能指点我一些文件吗? – goseta

+1

这里有一个很棒的链接:http://www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolver –