WCF问题集锦:未按照DataMember定义的名称序列化对象

今遇到WCF序列化BUG,代码如下:

/// <summary>
/// 包含数据的返回对象
/// </summary>
/// <typeparam name="T">实际返回的数据对象</typeparam>
[DataContract]
public class Message<T>
{
    /// <summary>
    /// 状态码,执行正常返回200
    /// </summary>
    [DataMember(Name="code")]
    public int Code { get; set; }

    /// <summary>
    /// 返回的对象,执行异常或原无返回信息时,该属性为null。
    /// </summary>
    [DataMember(Name = "data")]
    public T Data { get; set; }
}

/// <summary>
/// 不包含数据的返回对象
/// </summary>
public class Message
{
    /// <summary>
    /// 状态码,执行正常返回200
    /// </summary>
    [DataMember(Name = "code")]
    public int Code { get; set; }
}

在作为服务方法返回参数序列化时,对象Message<T>能正常序列化,而Message却不行,序列化的Code首字符是大写,而不是如DataMember中定义的code。没法,只能暂时把所有字段定义的首字符全部变成小写来解决问题。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-22 03:07:13

WCF问题集锦:未按照DataMember定义的名称序列化对象的相关文章

解决WCF 调用方未由服务器进行身份验证或消息包含无效或过期的安全上下文令牌

错误描述: 1. WCF:调用方未由服务器进行身份验证 2. 无法处理消息.这很可能是因为操作“http://tempuri.org/ISCCLSvc/GetCarriersByWareHouse”不正确,或因为消息包含无效或过期的安全上下文令牌,或因为绑定之间出现不匹配.如果由于未处于活动状态导致服务中止了该通道,则安全上下文令牌无效.若要防止服务永久中止闲置会话,请增加服务终结点绑定上的接收超时. 3.或并发测试时,高并发出现问题2,实际案例:公司测试部门结果是并发到50就会出现问题2错误,

wcf问题集锦

1.处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 解决办法:以管理员运行命令:C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.ex

c++总结之类型,对象的定义和声明,对象的初始化和赋值

一.对象的类型 对象的类型决定了对象占用内存空间的大小,和内存的布局,内存中可存储值的范围以及对该对象可以进行的操作,由于对象的类型决定可以对其执行的操作,因此const属性也可以看做对象类型的组成部分.类型又分为静态类型和动态类型,对于普通对象,静态类型和动态类型一般是一致的:对于指针和引用类型,静态类型和动态类型可以相同也可以不同,静态类型是指针和引用定义时声明的类型,而动态类型是指程序运行时实际绑定的类型.当静态类型和动态类型不同时,一般来说有两种情况:一是指涉到常量的指针和引用绑定了一个

JavaScript之基础-10 JavaScript 正则表达式(概述、定义正则、RegExp对象、用于模式匹配的String方法)

一.JavaScript 正则表达式概述 正则表达式概述 - 正则表达式(Regular Expression): 由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式 - 正则表达式常用于在一段文本中搜索.匹配或替换特定形式的文本.如:词语出现频率统计.验证字符串是否符合邮件格式.屏蔽一篇帖子中的限制性词语等 正则表达式初体验 - 验证用户输入的手机格式是否合法 二.JavaScript 定义正则表达式 普通字符 - 所有的单个大小写字母.数字都是一个正则表达式,用以匹配单个字符

[C#错误]未找到类型或命名空间名称&quot; &quot; (是否缺少 using 指令或程序集引用?)

现象:编译项目时提示未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?) 解决方法:如果是未找到类型,检查是否引用了类型所在的命名空间,使用using指令. 如果是未找到命名空间,那么检查是否引用了程序集,如果确认引用了程序集,那么检查程序集版本和项目是否一致,例如,你的项目是.net 4.0,而你的程序集是.net 3.5下编译的,或者你的引用项目与被引用项目的.NET framework版本不一样,例如一个是.NET 4.0 另一个是.NET 4.0 Cli

未找到类型或命名空间名称&quot; &quot; (是否缺少 using 指令或程序集引用?)

原文:http://www.cnblogs.com/zhangzhifeng/p/3607519.html 现象:编译项目时提示未找到类型或命名空间名称" " (是否缺少 using 指令或程序集引用?) 解决方法: 如果是未找到类型,检查是否引用了类型所在的命名空间,使用using指令. 如果是未找到命名空间,那么检查是否引用了程序集, 如果确认引用了程序集,那么检查程序集版本和项目是否一致,例如,你的项目是.net 4.0,而你的程序集是.net 3.5下编译的,(右击项目,属性,

定义特有属性的对象

代码展示 for(var i = 0; i < val.length; i++) { var item = {};//自己定义的对象 arr.push(val[i].id); //arr是自己声明的数组,将for循环的每一项的某个属性追加到自己定义的数组里 item['id'] = val[i].id;//给自己定义的对象添加属性 item['name'] = val[i].name;//同上,给自己定义的对象添加属性 dynamicTags1.push(item);//dynamicTags1

WCF问题集锦:ReadResponse failed: The server did not return a complete response for this request.

今日.对代码进行单元測试时.发现方法GetAllSupplyTypes报例如以下错误: [Fiddler] ReadResponse() failed: The server did not return a complete response for this request. Server returned 0 bytes. 经过对照.唯一的差异是该方法返回的数据对象是一个继承于还有一个集合对象的对象,代码例如以下: /// <summary> /// SupplyType的值的集合 //

Angular动态菜单用于MVC和WCF REST(未完)

来源链接 http://www.codeproject.com/Articles/996614/Angular-JS-Dynamic-Menu-Creation-using-MVC-and-WCF 新手翻译,看到一些好文,将其转过来,希望能对大家起到一点点的帮助. 1,为什么我们需要动态创建菜单: 如果我们只是需要创建一个只有几个页面的网站,那么用静态菜单就可以. 但是只果要开发一个大型Web应用的话,例如ERP Web应用. 在这种情况下,会有2个以上的开发者一起工作,而且页面可能会超过50-