如何将该“类”,用WCF发布出去,被SL使用

问题描述

如何将该“类”,用WCF发布出去,被SL使用???该类是来自“asp.net三层”的中的“BLL”层的,内容如下:usingSystem.Collections.Generic;usingSystem.Linq;usingMycems.DAL;usingMycems.Model;namespaceMycems.BLL{publicclassMonitoringManager{#region构造函数privatereadonlyMonitoringServiceservice;publicMonitoringManager():this(false){}publicMonitoringManager(boolissubstation){service=newMonitoringService(issubstation);service.IsIncludeWater=false;}publicMonitoringManager(boolissubstation,boolisincludewater){service=newMonitoringService(issubstation);service.IsIncludeWater=isincludewater;}#endregionpublicList<Monitoring>GetMonitorDatas(Monitoring.EnergyTypeenergytype,KeyValuePair<Monitoring.Period,string>monitordate,KeyValuePair<Monitoring.MonitorType,string>monitortype,stringmeterusetype){returnGetMonitorDatas(energytype,energytype.ToString(),monitordate,monitortype,meterusetype);}publicList<Monitoring>GetMonitorDatas(Monitoring.EnergyTypeenergytype,stringenergytypecode,KeyValuePair<Monitoring.Period,string>monitordate,KeyValuePair<Monitoring.MonitorType,string>monitortype,stringmeterusetype){varresult=newList<Monitoring>();vartotal=string.IsNullOrEmpty(meterusetype)||meterusetype.StartsWith(",")||meterusetype.StartsWith("*");service.IsAutoStatistics=energytype!=Monitoring.EnergyType.OTHER;service.IsManualStatistics=total&&(monitordate.Key==Monitoring.Period.Y||monitordate.Key==Monitoring.Period.X)&&monitortype.Key!=Monitoring.MonitorType.D;if(total){result=service.GetMonitorDetailDatas(energytype,energytypecode,monitordate,monitortype,string.Empty);if(!string.IsNullOrEmpty(meterusetype))meterusetype=meterusetype.Substring(1);if(!string.IsNullOrEmpty(meterusetype)&&meterusetype.StartsWith(","))meterusetype=meterusetype.Substring(1);}if(!string.IsNullOrEmpty(meterusetype)&&!meterusetype.StartsWith(",")){if(service.IsAutoStatistics&&!service.IsSubstation)result.AddRange(service.GetMonitorDetailDatas(energytype,energytypecode,monitordate,monitortype,meterusetype));}#region多日期时的处理vardates=monitordate.Value.Split(',');if(dates.Length>1&&(monitortype.Value!="*")){varnewresult=newList<Monitoring>();foreach(vardateindates){varitemofdate=result.Where(item=>item.SN==date).FirstOrDefault();if(itemofdate==null){switch(monitordate.Key){caseMonitoring.Period.Y:itemofdate=newMonitoringYear();break;caseMonitoring.Period.M:itemofdate=newMonitoringMonth();break;default:itemofdate=newMonitoringDay();break;}itemofdate.SN=date;itemofdate.U=result[0].U;itemofdate.V=result[0].V;itemofdate.E=result[0].E;itemofdate.EN=result[0].EN;itemofdate.R=result[0].R;itemofdate.RN=result[0].RN;itemofdate.F=result[0].F;itemofdate.FN=result[0].FN;itemofdate.B=result[0].B;itemofdate.BN=result[0].BN;itemofdate.C=result[0].C;itemofdate.CN=result[0].CN;itemofdate.D=result[0].D;itemofdate.DN=result[0].DN;itemofdate.Type=result[0].Type;itemofdate.Date=result[0].Date;itemofdate.Target=result[0].Target;itemofdate.UseType=result[0].UseType;result.Add(itemofdate);}newresult.Add(itemofdate);}returnnewresult;}#endregionreturnresult;}publicDictionary<string,double[]>GetAreaHeadCount(){returnservice.GetAreaHeadCount();}#endregion}#region扩展方法publicstaticclassListMonitorExtention{publicstaticList<Monitoring>Sum(thisList<Monitoring>source,List<Monitoring>another){foreach(varSinsource){varitem=(MonitoringYear)S;foreach(varAinanother){if(S.SN==A.SN&&S.E==A.E&&S.R==A.R&&S.F==A.F&&S.B==A.B&&S.C==A.C&&S.D==A.D){item.M01+=A.Datas[0];item.M02+=A.Datas[1];item.M03+=A.Datas[2];item.M04+=A.Datas[3];item.M05+=A.Datas[4];item.M06+=A.Datas[5];item.M07+=A.Datas[6];item.M08+=A.Datas[7];item.M09+=A.Datas[8];item.M10+=A.Datas[9];item.M11+=A.Datas[10];item.M12+=A.Datas[11];if(string.IsNullOrEmpty(item.SN))item.SN=A.SN;another.Remove(A);break;}}}source.AddRange(another);returnsource;}}#endregion}问题:如何将该“类”,和该类中的“所有方法”用“WCF”发布出去,可以在客户端被“SL”使用,进行查询???

解决方案

解决方案二:
该回复于2012-03-07 09:21:53被版主删除
解决方案三:
使用的是“启用了Silverlight的WCF服务”,内容如下:usingSystem;usingSystem.Linq;usingSystem.Runtime.Serialization;usingSystem.ServiceModel;usingSystem.ServiceModel.Activation;[ServiceContract(Namespace="")][SilverlightFaultBehavior][AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]publicclassChartsService{[OperationContract]publicvoidDoWork(){//在此处添加操作实现return;}//在此处添加更多操作并使用[OperationContract]标记它们}是不是把“BLL层”下的“MonitoringManager”类引用过来,添加上这些方法就可以了呢?
解决方案四:
把类改成了这个样子,使用了“RIAWCFService”,但是好像不能标记构造函数。[ServiceContract(Namespace="")][SilverlightFaultBehavior][AspNetCompatibilityRequirements(RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]publicclassChartsService{[OperationContract]publicvoidDoWork(){return;}//在此处添加更多操作并使用[OperationContract]标记它们#region构造函数privatereadonlyMonitoringServiceservice;[OperationContract]publicChartsService():this(false){}[OperationContract]publicChartsService(boolissubstation){service=newMonitoringService(issubstation);service.IsIncludeWater=false;}[OperationContract]publicChartsService(boolissubstation,boolisincludewater){service=newMonitoringService(issubstation);service.IsIncludeWater=isincludewater;}问题:“[OperationContract]”标记好像对构造函数无效,那么“构造函数”应该怎样对外发布呢?错误信息如下:错误1特性“OperationContract”对此声明类型无效。它只对“method”声明有效。C:UsersAdministratorDesktopGLLG(Preview2.0)Mycems.UIApp_CodeChartsService.cs3010C:...Mycems.UI#endregion[OperationContract]publicList<Monitoring>GetMonitorDatas(Monitoring.EnergyTypeenergytype,KeyValuePair<Monitoring.Period,string>monitordate,KeyValuePair<Monitoring.MonitorType,string>monitortype,stringmeterusetype){returnGetMonitorDatas(energytype,energytype.ToString(),monitordate,monitortype,meterusetype);}
解决方案五:
比如你建了个网站,先添加wcf服务,然后在服务里面定义你要传递过去的类(datacontract的属性),类里面写你的字段方法(加相应的属性)。为你的网站添加silverlightproject,然后添加你刚弄的服务引用,就可以直接使用那个类了。(ps:为避免代码重复,可以用link)
解决方案六:
引用4楼hbu_pig的回复:

比如你建了个网站,先添加wcf服务,然后在服务里面定义你要传递过去的类(datacontract的属性),类里面写你的字段方法(加相应的属性)。为你的网站添加silverlightproject,然后添加你刚弄的服务引用,就可以直接使用那个类了。(ps:为避免代码重复,可以用link)

"WCF服务"没有办法公布“服务类的构造函数”吗?
解决方案七:
该回复于2012-03-08 08:57:33被版主删除
解决方案八:
该回复于2012-03-09 09:00:24被版主删除
解决方案九:
该回复于2012-03-11 07:52:30被版主删除
解决方案十:
引用5楼starryria的回复:

"WCF服务"没有办法公布“服务类的构造函数”吗?

wcf(以及webservice)客户端代码就是针对服务的那几个rpc调用,跟服务器端有什么类型没有关系。比如说服务器端是一个vb6编译出来的exe,或者是一个javascript写的脚本,只要它可以处理http格式字符串请求并且返回http格式的字符串结果,对客户端也是一样的。客户端就不要纠结服务器端的代码是怎么写的,只要面对服务接口来操作就行了。
解决方案十一:
引用9楼sp1234的回复:

引用5楼starryria的回复:"WCF服务"没有办法公布“服务类的构造函数”吗?wcf(以及webservice)客户端代码就是针对服务的那几个rpc调用,跟服务器端有什么类型没有关系。比如说服务器端是一个vb6编译出来的exe,或者是一个javascript写的脚本,只要它可以处理http格式字符串请求并且返回http格式的字符串结果,对客户端也是一样的。……

能追加一点问题么?“WebService”是不是泛指,它包含“WCF”和“asmx文件”???
解决方案十二:
顶一下啊。。。
解决方案十三:
引用10楼starrywcf的回复:

能追加一点问题么?“WebService”是不是泛指,它包含“WCF”和“asmx文件”???

这种问题就不要麻烦大牛了,我可以代为回答吗?WebService是一项服务接口技术,WCF和ASP.Net里面的.asmx都可以实现WebService。
解决方案十四:
引用5楼starryria的回复:

"WCF服务"没有办法公布“服务类的构造函数”吗?

WCF服务公布出来的是契约:DataContract、OperatingContract

时间: 2025-01-01 05:27:15

如何将该“类”,用WCF发布出去,被SL使用的相关文章

淘宝发布《淘宝网生鲜类预售商品发布管理公告》,必须使用官方预售工具进行发布

9月10日消息,据获悉,日前淘宝网发布<淘宝网生鲜类预售商品发布管理公告>,公告称水产肉类/新鲜蔬果/熟食类目预售商品必须使用淘宝官方预售工具进行发布,如果不符合要求,首次下架商品,再次删除商品.该公告9月9日起生效. 我们连线唯新食品电商负责人王俊桦,了解了淘宝这一规则产生的原因.王俊桦称,淘宝服装.家纺类目后台一直有"预售"功能,但生鲜类目是没有的.实际上,生鲜类目对于"预售"的需求很大,因为新鲜产品.熟食类对于物流.仓储的管理要求更高,如果可以对于

关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序.

问题描述 关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序. 关于注册安装问题我 我们写了一个管理类的程序 发布了一个安装程序 刚开始是免费试用7天 但是如果你今天安装了 没到7天 你重新卸载了 再次安装 又有七天了 这个问题该怎么解决呢????. 解决方案 在程序运行的时候往文件系统或者注册表中某个角落写一个值.卸载程序不知道,再次安装,运行后你去判断下,发现有了,就不让用. 还有就是在线验证,将用户信息记录在服务器上.可以用手机短信验证. 解决方案二: 这个有一个就是你安装的

超强分页类2.0发布,支持自定义风格,默认4种显示模式_php实例

超强分页类2.0发布,支持自定义风格,默认4种显示模式 看到论坛上有人求百度分页类,所以把几周前的分页类贴出来.    2.0相对1.0修正如下:   1.支持PHP4和PHP5   2.增加了对ajax分页的功能   3.优化了程序整体结构   4.增加了自定义风格的功能 代码如下:  复制代码 代码如下: <?  /**   * filename: ext_page.class.php   * @package:phpbean   * @author :feifengxlq<feifeng

wcf 发布iis问题

问题描述 请教下,wcf发布到iis上,如何把访问地址中的svc去掉呢 解决方案 解决方案二:为啥要去掉啊?解决方案三:引用1楼xunzaosiyecao的回复: 为啥要去掉啊? 很多人都是干这个的.不靠系统功能,而是靠这个"后缀"的伪造去提高自己,打压技术人员的积极性.

NET下RabbitMQ实践 [WCF发布篇]

在之前的两篇文章中,主要介绍了RabbitMQ环境配置,简单示例的编写.今天将会介绍如何使用WCF将RabbitMQ列队以服务的方式进行发布. 注:因为RabbitMQ的官方.net客户端中包括了WCF的SAMPLE代码演示,很适合初学者,所以我就偷了个懒,直接对照它的SAMPLE来说明了,算是借花献佛吧,呵呵.首先我们下载相应源码(基于.NET 3.0),本文主要对该源码包中的代码进行讲解,链接如下:    Binary, compiled for .NET 3.0 and newer (zi

WCF发布由于不支持asp.net兼容性而导致服务无法激活启用

原文http://www.cnblogs.com/xtechnet/archive/2012/06/06/2537979.html 测试发布到虚拟目录中时发生的报错现象,由于不支持asp.net兼容性而导致服务无法激活启用 错误信息: The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility is enabled for this applica

一起谈.NET技术,NET下RabbitMQ实践 [WCF发布篇]

在之前的两篇文章中,主要介绍了RabbitMQ环境配置,简单示例的编写.今天将会介绍如何使用WCF将RabbitMQ列队以服务的方式进行发布. 注:因为RabbitMQ的官方.net客户端中包括了WCF的SAMPLE代码演示,很适合初学者,所以我就偷了个懒,直接对照它的SAMPLE来说明了,算是借花献佛吧,呵呵.首先我们下载相应源码(基于.NET 3.0),本文主要对该源码包中的代码进行讲解,链接如下:    Binary, compiled for .NET 3.0 and newer (zi

家装建材类软文发布网站平台分享

互联网的迅速发展和普及,并成为现代人生活的重要组成部分.对于家居装修和建材,家具类的网站信息也不例外,网络的使用已经渗透到家装业主决策的整个流程和每个细节.据相关调查数据结果显示:互联网已成为房产家居消费选择的主要媒体之一.大部分受访者(业主)认为互联网是他们获取家装建材相关信息的重要来源. 家装类互联网广告也是赢得了大多数人的支持.强烈支持家装类广告的业主,都认为家装类广告能够http://www.aliyun.com/zixun/aggregation/17185.html">帮助用户

关于WCF发布到IIS7不成功具体解决方案

开发环境:vs2010 .net framework4.0 asp教程.net4.0 第一步:检查windows7中iis是否安装了必要的组件 方法:控制面板->程序和功能->打开或关闭windows功能 以下图片中标注的功能windows7默认不会安装的   第二步:检查iis的配置 系统必备安装完成后打开iis服务管理器,点默认网站,双击"处理程序映射"如下图  检查一下下图中红色标注部分是否已经存在,否则wcf服务是无法调用的.不幸如果没有找到这几个"兄弟&