Может ли сервисный контракт Wcf также использоваться другими (nhibernate asp.net) - PullRequest
1 голос
/ 26 апреля 2011

Мне было интересно, будет ли 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] в репозиторий?

1 Ответ

1 голос
/ 26 апреля 2011

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

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

...