Wcf服务合同也可以被其他人使用(nhibernate asp.net)

时间:2011-04-26 15:02:51

标签: wcf nhibernate .net-4.0 irepository

我想知道如果与IRepository

混在一起wcf是否有点崩溃

因为2个不同的来源将使用相同的合同: - WCF使用1 - 另一个由Asp.net Nhibernate

所以我想重复使用相同的合同,而不是制作另外一个或两件事的副本。

通过示例更容易理解......

[ServiceContract]
public interface ITutorialService
{
    [OperationContract]
    void AddTutorial(Tutorial newTutorial);
    [OperationContract]
    List<Tutorial> GetTutorials();
    [OperationContract]
    void RemoveTutorial(string id);

    Tutorial GetTutorialModel();
    Tag GetTagModel();
    Video GetVideoModel();

    IRepository<Tutorial> GetTutorialRepository();
    IRepository<Tag> GetTagRepository();
    IRepository<Video> GetVideoRepository();
}

[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)]
public class TutorialService : ITutorialService
{
    private IRepository<Tutorial> _tutorial;
    private IRepository<Tag> _tag;
    private IRepository<Video> _video;......

简而言之,wcf工作正常,因为我没有向Irepository添加任何[OperationContract]

1 个答案:

答案 0 :(得分:1)

是的,它会起作用。没有[OperationContract]的方法不会是WCF操作,但听起来就像你想要的那样。

另一种方法是拥有两个接口,并从另一个接口中派生出一个接口,以便分离关注点,但不必定义方法两次。