当前位置:编程学习 > C#/ASP.NET >>

如何通过对类的序列化实现WCF的远程接口调用?

--------------------编程问答-------------------- 我调用WCF服务的时候没有用系列化,我用的是异步传输,在COMPLETE事件通过遍历获取数据在客户端专门有个对象来接数据我用的是LIST来接的。你如果在客户端用User类的话,应该用Serivicereference1.User而不是直接用User。 --------------------编程问答-------------------- 不好意思我是个WCF新手,问一下如何实现客户端对服务器端类的引用,ServiceReference1对远端自定义类不可见怎么办? --------------------编程问答-------------------- 你在调用服务的时候第一步不是添加服务引用吗?添加过后,默认服务名就叫做ServiceReference1
以下 是我异步方法里面事件
1.在load()事件里面声明
    ServiceReference1.Service1Client sc = new ServiceReference1.Service1Client();
                sc.JQHotSpotCompleted += new EventHandler<ServiceReference1.JQHotSpotCompletedEventArgs>(sc_JQHotSpotCompleted);     

2.在Completed事件里面调用
        void sc_JQHotSpotCompleted(object sender, ServiceReference1.JQHotSpotCompletedEventArgs e)
        {
            List<Hot> lst = new List<Hot>();
            double east, west, south, north;
            foreach (ServiceReference1.HotSpot s in e.Result)
            {
                QuadTree.Quadtree2Geodetic(s.QTREE.ToString(), out east, out south, out west, out north);
                Hot h = new Hot();
                h.X = (west + east) / 2;
                h.Y = (north + south) / 2;
                h.Weight = Convert.ToDouble(s.NUM);
                lst.Add(h);
            }
            this.hotspot.ISQuickSearch = true;
            this.hotspot.ItemSource = lst;
            this.hotspot.Bind();
        } --------------------编程问答-------------------- 没错,ServiceReference1确实实现了远端定义的一些方法,但我是想引用远端定义的类(其实跟结构体没什么区别,纯数据包而已),请问怎么实现这个服务器端自定义类的客户端引用呢? --------------------编程问答-------------------- ServiceReference1.类名,我上面的Complete事件中ServiceReference1.HotSpot就是引用服务器端的类。这样就保持一致了 --------------------编程问答-------------------- 我换了种更cuo的方式:本来想在IService1.cs文件里的[DataContract]域添加自定义类User,但是Update Service Reference之后在Object Browser->Client->{}Client.ServiceReference1里找不到User,之后我果断在默认的CompositeType类里添加了自己需要的属性、方法,这样才最终实现了远程调用...请问:是否可以在IService1.cs文件里定义多个[DataContract](数据契约)类?除了重写CompositeType类之外还有别的方法引用自定义类吗? --------------------编程问答-------------------- [DataContract]定义借口要和你方法一致,多少个无所谓,数据模型你可以建一个工程专门存放。服务端引用,客户端调用就和那个工程基本没什么关系了,你需要用的数据模型就是服务器端的。而不是那个工程的了。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,