我想知道如果与IRepository
因为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]
?
答案 0 :(得分:1)
是的,它会起作用。没有[OperationContract]
的方法不会是WCF操作,但听起来就像你想要的那样。
另一种方法是拥有两个接口,并从另一个接口中派生出一个接口,以便分离关注点,但不必定义方法两次。