WCF啊... 目前没深入了解,飘过 

解决方案 »

  1.   

    JShop.PageOfItemsOfBrand7rzGfijk?
    它不会返回不存在的类,你有这样的类吗?
      

  2.   


    没有,这个是引用后,VS自动生成的,但这个是错误的,我想要的是
    JShop.PageOfItems<Brand>
      

  3.   

    [CollectionDataContract]
    换成
     [DataContract]
    试试
    [OperationContract]
    [ServiceKnownType(typeof(Brand))]
    PageOfItems<Brand> GetBrands(PagingInfo pagingInfo);去掉
    [ServiceKnownType(typeof(Brand))]契约Contract

    [ServiceContract]
      

  4.   

    楼上的在胡说八道,什么地方用什么属性都没搞清楚,就在那里瞎指挥,[ServiceContract]只能用在接口或类的属性上,你怎么可以加在函数上既然楼主说“在客户端引用这个服务后,返回的对象”错误,那么你手动修改下产生的cs文件,将那个对象修改正确试试看,应该可以使用的。我以前也使用引用服务的方法添加过客户端,发现List<T>这类泛型到了客户端,会自动修改接收到的类型的,不再是List<T>对象了,虽然也可以用,但看着不爽我就手动修改了客户端自动产生的CS文件,改回了List<T>对象,使用也没问题。所以你试试手动改下,应该是可以的。
    嘛,现在为了稳定和减少麻烦,我单独将公共类放在一个项目中编译为dll同时给WCF服务端和客户端引用,这样就不需要在客户端引用服务了,直接引用dll即可,永远不可能出错。
      

  5.   

    是这样的,要手动修改。
    也可以自己写客户端的代码  方法名可以不同只要在服务端和客户端同时定一个相同的name属性
      

  6.   


    眼睛看清楚咯契约Contract

    [ServiceContract]契约指的是用接口来定义服务契约(Service Contract)你哪只眼睛看见我说把ServiceContract加方法上?
      

  7.   


    自动生成的是服务端代理。我没使用过.NET的服务器引用,一般都是使用Svcutil手动生成代理。服务器端使用List<T>的时候,生成工具会自动转换为 T[] 数组类型。一般手动修改代理就好了  
    LZ手动修改代理试试。