none
DataContract必须定义在和.svc文件相同的项目里么? RRS feed

  • 问题

  • 现在有一个项目要用WCF技术,把项目的UI层内容分出来放到客户端。

    原来的解决方案分了三个项目,一个数据访问(DA),一个逻辑(BT),还有一个实体类(Entity)。如果要改造成WCF的话,这个Entity怎么处理啊,应该把他当做数据契约,可是又要有服务契约,数据契约和服务契约必须放在一个项目里嘛?能不能新建一个WCF服务项目,把服务契约抽象完毕后,引用Entity里的数据契约啊?

    我在Entity的项目里加了using System.ServiceModel;

    可是那些属性都不能用。很郁闷,难道要重新弄一套数据契约?把实体类一个一个放进去嘛?

    WCF接触不久,感觉好困难,感谢好心人

    2011年3月9日 8:02

答案

全部回复

  • BT层引用了实体类的层,得把DA返回的DataSet弄成ArrayList交给上面的层。。如果把数据契约放在WCF层里,WCF引用了BT里的方法,BT又必须引用WCF里的数据契约,实体类如果不能当数据契约,这样就循环引用了,怎么解决这个矛盾啊。。救命啊~~~~ 要不然把BT处理DataSet的功能交给数据契约的类去做????
    2011年3月9日 8:11
  • 下面是参考步骤:

     

    1.DA数据访问层返回DataSet,

    2.业务逻辑层包装,返回实体类。

    4.服务直接调用BT业务逻辑类,返回实体数据,

    5.WCF服务操作然后转换为数据契约。返回数据契约即可。

     


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    • 已标记为答案 Mog Liang 2011年3月16日 9:18
    2011年3月9日 10:21
    版主