2013-02-06 137 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 –