2010-04-22 5 views
0

Im marque fessée nouvelle à WCF et Im essayant de comprendre comment exposer correctement mon BLL à elle. J'ai créé mon premier Resource.svc et IResource.svcWCF Services multiples

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(); 

    } 

Donc tout cela fonctionne, mes fenêtres app peut parler au service et tout est grand. Donc maintenant j'ai besoin d'accéder à certaines informations, j'ai créé un autre fichier .svc appelé Project.svc et IProject.cs, cela contient la même information que la ressource (à part le type est Project) Mais cela signifie maintenant que j'ai un autre webservice , surley ce n'est pas bien !?

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

Répondre

0

C'est exact. Chaque nouveau service que vous ajoutez à votre projet WCF nécessitera son propre fichier SVC. Cela peut devenir compliqué si vous exposer de nombreux services différents. Il existe des solutions telles que l'architecture de vos services WCF pour utiliser le style REST et la base du service appelé à partir de l'URL, afin qu'un SVC puisse déterminer le service et la méthode sous-jacents à appeler. Pour ce faire, il vous faudra cependant rouler votre propre ServiceHost.