Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wcf服务合同是否也可供他人使用(nhibernate asp.net)_Wcf_Nhibernate_.net 4.0_Irepository - Fatal编程技术网

Wcf服务合同是否也可供他人使用(nhibernate asp.net)

Wcf服务合同是否也可供他人使用(nhibernate asp.net),wcf,nhibernate,.net-4.0,irepository,Wcf,Nhibernate,.net 4.0,Irepository,我想知道如果将wcf与IRepository 因为两个不同的来源将使用相同的合同: -1被WCF使用 -另一个是Asp.net Nhibernate 所以我想重复使用同一份合同,而不是制作一个或两个复制品 通过一个例子更容易理解 [ServiceContract] public interface ITutorialService { [OperationContract] void AddTutorial(Tutorial newTutorial); [Operatio

我想知道如果将wcf与
IRepository

因为两个不同的来源将使用相同的合同: -1被WCF使用 -另一个是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;......
[服务合同]
公共接口替代服务
{
[经营合同]
void AddTutorial(Tutorial newTutorial);
[经营合同]
列出gettuorials();
[经营合同]
void removeturial(字符串id);
教程GetTutorialModel();
标记GetTagModel();
视频获取视频模型();
i存储getutorialrepository();
i存储GetTagRepository();
i存储GetVideoRepository();
}
[ServiceBehavior(InstanceContextMode=InstanceContextMode.Single)]
公共类教程服务:ITutorialService
{
私人IRepository教程;
私人IRepository标签;
私人IRepository视频;。。。。。。

简言之,如果我没有在Irepository中添加任何
[OperationContract]
,wcf会工作吗?

是的,它会工作。没有
[OperationContract]
的方法不会是wcf操作,但听起来这正是您想要的


另一种方法是有两个接口,一个接口从另一个接口派生,这样可以分离关注点,但不必定义两次方法。

是的,它可以工作。没有
[OperationContract]
的方法不会是WCF操作,但听起来这正是您想要的


另一种方法是有两个接口,其中一个接口从另一个接口派生,这样可以分离关注点,但不必定义两次方法。

@Bradon-neat!!你创造了我的早晨@Bradon-neat!!你创造了我的早晨