注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

悠游自在

似水流年,悠游天地,自在我心

 
 
 

日志

 
 
 
 

mono小技巧:通过WCF传递参数时可能需要指定XXXSpecified  

2014-01-17 21:59:35|  分类: IT技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
发现一个mono for android使用WCF的一个需要注意的问题,传递参数时,往往需要指定是否传递了该参数,指定方法是通过设置XXXSpecified参数为true。
例如,通过WCF从手机端向服务器端传递DateTime(或者DateTime?)类型数据,如果该数据直接通过WCF函数参数传递可以传成功,如果该数据是某个类型的成员,则传过去的总为null。
测试代码如下:
WCF服务接口定义:
    [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        DateTime? TestAddOneDay(DateTime? dt1);
        [OperationContract]
        void TestAddOneDay2(WCFParam dt1);
    }
    [DataContract]
    public class WCFParam
    {
        [DataMember]
        public DateTime? dt1 { get; set; }
    }
手机端实现WCF客户端,无论是使用TestAddOneDay直接传递DateTime?参数dt1,还是通过对象传递DateTime?参数,都要设置相应的dt1Specified为true,否则,服务端是收不到DateTime?参数的值的。
手机端实现WCF客户端,调用代码示例如下:
        public static void TestWFCDate()
        {
            try
            {
                using (WingRef.Service1 pxy = new WingRef.Service1())
                {
                    DateTime? dt2;
                    bool bb,bb2;
                    dt2=pxy.TestAddOneDay(DateTime.Now,true,out dt2,out bb);//设置相应的dt1Specified为true

   //设置相应的dt1Specified为true
                    var t_para=new WingRef.WCFParam(){
                        dt1=DateTime.Now,
dt1Specified=true,
                    };
                    pxy.TestAddOneDay2 (t_para,out bb,out bb2);
                }
            }
            catch (Exception e1)
            {
                //print exception message;
            }
        }
  评论这张
 
阅读(1211)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018