我正在玩WCF 4.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类。
答案 0 :(得分:2)
我们添加了第三个'层',我们称之为应用程序。它可以访问DTO(您的问题中定义的类)和数据层。然后,应用程序层充当具有所有内容视图的应用程序层。它从数据层获取数据,并在将数据返回给调用者之前完成填充数据协定的工作。因此,它将完成大量的服务工作。
这可以避免您的循环引用。 :)
答案 1 :(得分:0)
由于我缺乏知识,我认为如果我将DataContract和ServiceContract类与WCF服务类分开,我就会遇到问题。
我的问题的解决方案是为契约创建一个公共类库,并让它们由WCF类或数据访问层类访问。