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