1

私はWCF4.0で遊んでいます。DataContractとして次のような簡単なサービスがあります。

[DataContract]
public class WeeklySchedule
{
    [DataMember]
    public DateTime DateMon;
    [DataMember]
    public string DishMon;
    [DataMember]
    public DateTime DateTue;
    [DataMember]
    public string DishTue;
    [DataMember]
    public DateTime DateWed;
    [DataMember]
    public string DishWed;
    [DataMember]
    public DateTime DateThu;
    [DataMember]
    public string DishThu;
    [DataMember]
    public DateTime DateFri;
    [DataMember]
    public string DishFri;
}

データベースアクセスメソッドを保持するために、別のクラスライブラリを構築したいと思います。これらのメソッドがWeeklyScheduleオブジェクトを返すようにします。

循環参照を回避するにはどうすればよいですか?

DALクラスをWCFサービスに参照する場合、dbメソッドを使用できますが、DALクラスはDataContractクラスを「見る」ことができません。

4

2 に答える 2

2

アプリケーションと呼ばれる3番目の「レイヤー」を追加しました。DTO(質問で定義されたクラス)とデータレイヤーにアクセスできます。アプリケーション層は、すべてを表示する層として機能します。データレイヤーからデータを取得し、呼び出し元に返す前にデータコントラクトにデータを入力する役割を果たします。したがって、それはあなたのサービス作業の大部分を行います。

これにより、循環参照が回避されます。:)

于 2012-06-08T17:08:57.883 に答える
0

知識が不足しているため、DataContractクラスとServiceContractクラスをWCFサービスクラスから分離すると問題が発生すると思いました。

私の質問に対する解決策は、コントラクト用の共通クラスライブラリを作成し、WCFクラスまたはデータアクセス層クラスのいずれかによってそれらにアクセスできるようにすることでした。

于 2012-06-08T20:46:20.923 に答える