1

混ぜたらwcfがちょっと壊れるかと思ってたIRepository

2 つの異なるソースが同じコントラクトを使用するためです。 - 1 つは WCF によって使用され、もう 1 つは Asp.net Nhibernate によって使用されます。

そのため、1 つまたは 2 つのものを取り出して別のレプリカを作成するのではなく、同じコントラクトを再利用したいと考えました。

例で分かりやすく...

[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;......

[OperationContract]つまり、Irepositoryに何も追加しなかったので、wcfは正常に動作しますか?

4

1 に答える 1

1

はい、動作します。ないメソッド[OperationContract]は WCF 操作ではありませんが、それが必要なようです。

もう 1 つのアプローチは、2 つのインターフェイスを持ち、一方をもう一方から派生させて、懸念事項を分離できるようにすることですが、メソッドを 2 回定義する必要はありません。

于 2011-04-26T15:35:27.270 に答える