Может ли контракт на обслуживание Wcf также использоваться другими (nhibernate asp.net )

#wcf #nhibernate #.net-4.0 #irepository

#wcf #nhibernate #.net-4.0 #irepository

Вопрос:

Мне было интересно, будет ли wcf своего рода сломан, если смешать с IRepository

поскольку 2 разных источника будут использовать один и тот же контракт: — 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;......
  

короче говоря, будет ли wcf работать нормально, поскольку я ничего не добавлял [OperationContract] в Irepository?

Ответ №1:

Да, это будет работать. Методы без [OperationContract] не будут операциями WCF, но похоже, что это то, что вы хотите.

Другой подход заключался бы в том, чтобы иметь два интерфейса и иметь один производный от другого, чтобы у вас было разделение задач, но не нужно определять методы дважды.

Комментарии:

1. @Bradon аккуратный!! ты сделал мое утро <3