wcf 数值类型赋值不能的问题解决

客户端给对象int类型赋值,服务端收到值为0

网上给出的方案

1.数值型字段+isrequired属性。能解决问题,但没有说明原因。数值型默认不赋值,不科学。

2.emitdefaultvalue。没试过个人感觉也不科学。

自己摸索出的方案

1.字段赋值/字段isspecified=true。能解决问题,但也不科学。

最后发现

引用服务时,高级设置里如果取消勾选“重新使用引用程序集中的类型” ,则客户端生成的引用代码将不含 System.Runtime.Serialization.IExtensibleDataObject接口,

然后所有值类型赋值系统没法感应到,必须手工如上述两条方案在服务端或客户端强调一下有赋值。

强调一下,网上大部分说法关于原理的解释都是错的,但是很多都包含了正确的因素。特别是以下这篇文章

http://www.cnblogs.com/CharlesLiu/archive/2010/02/09/1666605.html

时间: 2025-01-08 22:50:26

wcf 数值类型赋值不能的问题解决的相关文章

C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)

一.数值类型及其调用原理 名称 说明 所占字节 范围 byte 字节型 1 -27~27-1 short 短整型 2 -215~215-1 int 整型 4 -231~231-1 long 长整型 8 -263~263-1 char 字符型 1 0~65535 float 单精度型 4 ±1.5*10-45~±3.4*1038 double 双精度型 8 ±5.0*10-324~±1.7*10308 bool 布尔型 1 只有true和false两个值 static void Main(stri

17.2015.08.04第十八节课 C#2 (数值类型及调用、引用类型及调用、装拆箱、常量、变量、数据类型转换、算术运算符、赋值运算符、关系运算符、逻辑运算符、字符串的常用方法)

一.数值类型及其调用原理 名称 说明 所占字节 范围 byte 字节型 1 -27~27-1 short 短整型 2 -215~215-1 int 整型 4 -231~231-1 long 长整型 8 -263~263-1 char 字符型 1 0~65535 float 单精度型 4 ±1.5*10-45~±3.4*1038 double 双精度型 8 ±5.0*10-324~±1.7*10308 bool 布尔型 1 只有true和false两个值 static void Main(stri

【SQLServer笔记】SQLServer数值类型的NULL性

与C#.java等编程语言不同,在SQLServer中,int等数值类型的初始值为NULL,并且可以直接使用赋值运算符赋值为NULL,同时值为NULL的变量无法在消息栏中显示其值,只能在结果栏中显示NULL. 同时由创建数据库时的选项,当字符数据以“+”连接值为NULL的变量时,会导致连接后的结果为NULL. 1 DECLARE @ID INT; 2 SET @ID=NULL; 3 --以“+”链接NULL值与非NULL值后输出 4 PRINT '第一次输出@ID开始' 5 PRINT '当前@

Python的数值类型

问题: 1. Python数值有哪些? 2. 各类型的精度是多少? 3. 类型的转换是如何实现的? 5. 如何使用这些数据类型?需要注意什么? 6. 什么是不可变类型? 数值类型:     整型: (不可变类型)         标准整型:取值范围[-sys.maxint-1, sys.maxint]         长整型:可表示无限大的整数,其值仅与你机器支持的(虚拟)内存大小有关         数值超出标准整型范围将会转换为长整型.         例如:             1.定

C#数值类型的转换

介绍C#数值类型之间转换,包括介绍TestBasic() 函数等方面. C#数值类型之间转换 这里所说的数值类型包括 byte, short, int, long, fload, double 等,根据这个排列顺序,各种类型的值依次可以向后自动进行转换.举个例来说,把一个 short 型的数据赋值给一个 int 型的变量,short 值会自动行转换成 int 型值,再赋给 int 型变量.如下例: private void TestBasic() { byte a = 1; short b = 

Puppet数据类型中[数值类型,数组的使用] (十四)

本文主要写puppet的数据类型中的数值类型和数组的使用,博主puppet为3.8版本,puppet数组的追加功能测试没有成功,官网也没有给出示例,确定是否已经优化或者取消.官网数据类型连接地址 https://docs.puppet.com/puppet/3.8/lang_datatypes.html puppet的数据类型 目前puppet支持字符串类型.数字.数组.哈希.布尔型.undef和正则表达式. 一.字符串类型 定义字符串需要以双引号("")或单引号('')进行声明,在p

Python3 数值类型与运算符

1.数值类型与进制 (1)基本类型 整型:int 浮点型:float 布尔类型:bool 复数:complex print(type(1)) print(type(1.1)) print(type(False)) print(type(1+3j)) 输出结果: (2)进制 二进制:0b 八进制:0o 十六进制:0x 进制转换 转成二进制:bin() 转成八进制:oct() 转成十进制:int() 转成十六进制:hex() (3)基本运算 舍掉小数 print(round(1.234567,2))

c#数值类型以及继承情况

一.数值类型继承 数值类型都是继承于valueType  存放在栈中  读写速度快,引用类型放在堆中慢. 二.定义可为空的数值类型 int x1=null;//编译器报错 int? x1=null;//正确 三.自定义枚举值范围 一般情况下枚举的数值类型为int  但是需要的时候也可自定义范围,比如 enum MyselfEnum:byte { x1=0x1, x2=327,//这里会报错,超出了范围 }

Delphi XE6记录类型赋值

program Project1; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; TYPE Trec = record Member1, Member2: Integer; end; CONST IntRec: Trec = (Member1: 55; Member2: 2); begin Writeln(IntRec.Member1); Writeln(IntRec.Member2); Readln; end. 定义的时候,是可以进行赋