2010-04-22 44 views
0

即時通訊品牌嶄新的WCF和我試圖瞭解如何正確地暴露我的BLL。 我創造了我的第一個Resource.svc和IResource.svcWCF多種服務

Resource.svc

[ServiceBehavior] 
public class Resources : IResources 
    { 


     #region IResources Members 


     public List<Model.Resource> GetAll() 
     { 
      return Repository.Inventory.Resource.GetAll(true); 
     } 

     public List<Model.Resource> GetAllEnabled() 
     { 
      return Repository.Inventory.Resource.GetAllEnabled(true); 
     } 

     #endregion 
    } 

    IResource.cs 
    [ServiceContract] 
    public interface IResources 
    { 

     [OperationContract] 
     List<Model.Resource> GetAll(); 

     [OperationContract] 
     List<Model.Resource> GetAllEnabled(); 

    } 

所以這所有的作品,我的Windows應用程序可以跟服務和是偉大的。 所以我現在需要訪問一些信息,我創建了另一個名爲Project.svc和IProject.cs的.svc文件,它包含與資源相同的信息(除了類型是Project) 但現在這意味着我有另一個web服務,這是不對的!?

alt text http://img687.imageshack.us/img687/1588/capturepy.png

回答

0

這是正確的。您添加到WCF項目的每個新服務都需要自己的SVC文件。如果您公開許多不同的服務,這可能會令人費解。有一些解決方案,比如架構您的WCF服務以使用REST風格和基地服務從URL中調用,因此一個SVC可以找出要調用的底層服務和方法。要做到這一點意味着必須推出自己的ServiceHost。