首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WCF入门(6)

第六集 WCF DataContract & DataMember (WCF的DataDataMember) 这些天写下来关于那个mex还是有点困惑,早上在stackoverflow上搜到一个回答,感觉写得挺好的...再看看用DataContract的效果: ? 由于我们只给类标记了DataContract特性,没有任何字段被序列化了。。。(因为没有序列化字段,客户端在调用这个类的时候也是无法获取到对应的属性的。...如图: ) 其实,DataContract应该是DataMember配合使用。并且,这也是WCF推荐的做法。下面我们来实现一个。..._dateOfBirth = value; } 40 } 41 } 42 } 通过添加DataMember特性,字段回来了,并且序列化的顺序也按照我的赋予的排好了。...总结一下,用DataContract DataMember来控制我们需要序列化的对象。 下面还有KnowTypeAttribute的知识点,貌似有不少东西好写,还是另开一篇吧。。。

29220

Asp.Net Web API 2第十三课——ASP.NET Web API中的JSONXML序列化

这并不意味着要包含Json.NET库的整个文档。更多信息参阅Json.NET Documentation。 什么会被序列化? 默认情况下,所有public属性字段都会被包含在序列化的JSON中。...默认情况下,DataContractSerializer行为如下:   序列化所有public读/写属性字段。为了忽略一个属性或字段,请用IgnoreDataMember注解属性修饰它。...当这个注解属性出现时,该类按以策略序列化: “Opt in(选入)”方法:属性与字段默认不被序列化。为了序列化一个属性或字段,请用DataMember注解属性修饰它。...如果只读属性有一个支撑private字段,可以用DataMember注解属性对这个private字段进行标记。这种办法需要在类上使用DataContract注解属性。...记住,DataContract构成了序列化的“选入(Opt-in)”,因此,你还需要对属性添加DataMember注解属性: [DataContract(IsReference=true)] public

2.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

Thinking In Design Pattern——探索SOA在企业应用程序中扮演的角色

服务层的定义 Domain Model的设计与实现 IRepository的设计与实现 Document Message模式Request-Response模式的探索 DataContract的设计与实现...,他提供一个接口来定义应用程序的边界以及可供客户端使用的操作,在服务层向客户端描绘的门面后,它将业务逻辑、验证工作流封装起来并协调业务实体的持久化和和检索工作——《ASP.NET设计模式》 接下来...所以的响应对象都继承自某个包含一些公共行为的基类Response: [DataContract] public abstract class Response { [DataMember...: [DataContract] public class ReserveTicketRequest { [DataMember] public string...接着构建服务门面:TicketServiceFacade,Facade模式的应用,将复杂的接口隐藏起来,为应用程序提供一个一致的简化API。

92550

一个关于解决序列化问题的编程技巧

这个框架同时支持WebGUI应用,并支持跨线程传递跨域传递(这里指在WCF服务调用中实现客户端到服务端隐式传递),以及对上下文项目(ContextItem)的读写控制。...由于需要在WCF服务调用实现自动传递,我将起定义成DataContract。...如果对DataContractSerializer序列化器的序列化/反序列化规则的有所了解的话,应该知道:对于数据契约(DataContract)基于属性(Property)的数据成员(DataMember...方法很简单,那就是将数据成员定义在字段上,而不是属性上。基于属性的数据成员在反序列化的时候不得不通过调用Set方法对数据项进行初始化,而基于字段的数据成员在反序列化的时候只需要直接对其复制就可以了。...但是,这并不意味着这是一个可以被忽视的问题,背后隐藏对DataMemberAttribute序列化的序列化规则的理解。

66160

WCF入门(12)

外包公司总是有些不适应的地方,总在很闲很忙之间徘徊。凌晨2点被客户电话叫醒,只为copy一个文件从一台服务器到另一台服务器,虽然那时候我才刚睡下。似乎好想吐槽……罢了。   ...首先是证书的问题,通过看作者的asp.net的视频了解到IIS有Self-Signed Certificate 的东西可以用来方便的在IIS上部署需要https访问的站点而不需要去其他地方申请。...但是如果是不可转换的类型,比如int到DateTime,客户端就会得到异常 改变方法的返回值类型 如果新的返回值类型不能转换为客户端需要的类型,客户端就会获取到异常,否则不会 增加新的Operation 客户端无法调用到...下面是Employee的定义: [DataContract] public class Employee { [DataMember(IsRequired = true...[DataContract] public class Employee { [DataMember(IsRequired = true)] public

42210

WCF技术剖析之十四:泛型数据契约集合数据契约(上篇)

在.NET Framework 2.0中,泛型第一次被引入。我们可以定义泛型接口、泛型类型、泛型委托泛型方法。序列化依赖于真实具体的类型,而泛型则刻意模糊了具体类型概念。...由于范型类型集合类型在序列化反序列化上具有一些特殊的行为规则,在这篇文章中,我将会对此进行详细介绍。上篇先来说所泛型数据契约。...两者具有一些冲突 ,比如面常服务没有继承、重载的概念一样,面向服务同样也无法理解泛型。 但是基于WCF的编程语言是C#、VB.NET这样的完全面向对象的编程语言,而WCF服务却是基于面向服务的。...两个属性HeaderDetails表示单据报头明细列表。...WCF技术剖析之五:利用ASP.NET兼容模式创建支持会话(Session)的WCF服务 WCF技术剖析之六:为什么在基于ASP.NET应用寄宿(Hosting)下配置的BaseAddress无效 WCF

1.2K90

ASP.NET Core 警惕可空类型开启之后模型校验失败

/Nullable> 为了方便让小伙伴知道上面代码加在哪里,我贴出更多的 csproj 文件代码 netcoreapp3.1...FromForm] LindexiUploadFileRequest request) 也就是需要通过 FromForm 拿到内容,而 LindexiUploadFileRequest 的定义如下 [DataContract...Account { get; set; } 但是对于大项目,很难测试全,此时可以在全局配置,让行为之前相同 services.AddControllers(options => options.SuppressImplicitRequiredAttributeForNonNullableReferenceTypes...文件,在 ConfigureServices 函数添加上面代码即可 但对于 EF 这边,有更多的变更,详细请看 Working with nullable reference types - EF Core...values · Issue #18403 · dotnet/aspnetcore ---- 本文会经常更新,请阅读原文: https://blog.lindexi.com/post/ASP.NET-Core

1.4K30

如何将一个 .NET 对象序列化为 HTTP GET 的请求字符串

key1=value&key2=value&key3=value 于是我们将一个类型序列化为后面的参数: 1 2 3 4 5 6 7 8 9 10 11 12 [DataContract] public...关于源代码包不引入额外依赖 dll 的原理,可以参见: .NET 将多个程序集合并成单一程序集的 4+3 种方法 - walterlv 方法 我们需要做的是,将一个对象序列化为 query 字符串。...,于是我们需要: 取得此对象所有可获取值的属性 query.GetType().GetProperties() 获取此属性值的方法 property.GetValue(query, null) 将属性值拼接起来...string.Join("&", properties) 然而真实场景可能比这个稍微复杂一点: 我们需要像 Newtonsoft.Json 一样,对于标记了 DataContract 的类,按照 DataMember...using System.Reflection; using System.Runtime.Serialization; using System.Web; namespace Walterlv.Web.Core

26420

使用十年股价对比各种序列化技术

上周看到这篇问文章:【开源】C#.NET股票历史数据采集,【附18年历史数据源代码】,一时兴起就试试用各种常用的序列化技术实现以前的需求。 2....3.1 二进制序列化 二进制序列化将对象的公共字段私有字段以及类(包括含有该类的程序集)的名称都转换成字节流,对该对象进行反序列化时,将创建原始对象的准确克隆。...} 结果: Name Serialize(ms) Deserialize(ms) Bytes BinarySerializer 117 12 242,460 3.2 XML XML序列化将对象的公共字段属性或者方法的参数及返回值转换...使用protobuf-net需要将序列化的对象使用ProtoContractAttributeProtoMemberAttribute进行标记。...参考 二进制序列化 XML SOAP 序列化 Json.NET Protocol Buffers - Google's data interchange format 9.

45730

WCF技术剖析之十三:序列化过程中的已知类型(Known Type)

一、未知类型导致序列化失败 .NET的类型可以分为两种:声明类型真实类型。...当我们使用基于接口或者抽象类创建的DataContractSerializer去序列化一个实现了该接口或者继承该抽象类的实例的时候,往往会因为对对象的真实类型无法识别造成不能正常地序列化。...; set; } 24:  25: [DataMember] 26: public DateTime Date 27: { get; set; } 28:  29: [DataMember...注意泛型类型为IOrder或者OrderBase),将会抛出如图1所示SerializationException异常,提示Order类型无法识别。...ServiceKnownTypeAttribute既可以应用于服务契约的接口方法上,也可以应用在服务实现的类方法上。应用的目标元素决定了定义的已知类型的作用范围。

959110

ExtJs学习笔记(2)_Basic GridPanel

', 45.45, 0.73, 1.63, '9/1 12:00am'] ]; //"变化"字段的格式化输出 function change(val) {...Result.ToArray();         } } 注意:这里是用linq to sql的方法写的,默认情况下linq to sql设计器生成的T_Class类里,是不支持序列化的,ExtJs调用时无法正确序列成...JSON字符串,需要手动在类前加上数据契约 [DataContract],在属性前加上[DataMember] 如下: [Table(Name="dbo.T_Class")]     [DataContract...,需要手动修改dbml对应的cs文件,把DateTime改成string,否则序列化时,会产生很怪的值,估计是.Net在序列化成JSON时的bug. 5.为了减少生成的JSON字符串的大小,可以仅在需要输出的类属性上标记...[DataMember],这样在生成的JSON字符串,不会包含未标记为[DataMember]的字段

1.7K90

使用 ServiceStack 构建跨平台 Web 服务

WebAPI框架,关于这两个框架的讨论可以看我另外一篇文章《WCFASP.NET Web API在应用上的选择》 。...在讨论跨平台的Web服务上,ASP.NET Web API是一个重要选项,在本文中,我将展示如何利用 ServiceStack (开放源代码.NET Mono REST 服务框架) 来完成这一任务,不用离开...例如前面的代码段,如果要求从客户端来执行更高版本的 Web 服务的 DoSomething 方法的两个输入参数 — 或需要返回字符串值之外的另一个字段 —— 给老客户重大更改是不可避免的。...ServiceStack是.NetMono的开源框架,相对WCF,MVC及Web API而言它是开发Web服务与Web应用的有力替代品,它越来越普及。...本文假定您有一些熟悉 WCF .NET 框架。 为了更好地展示WCF 概念可以如何转化为 ServiceStack 的概念,首先会在WCF中实现服务层。

1.6K50

WCF系列教程之WCF中的会话

,如果我们将安全模式设置为None(关闭安全会话)并且关闭可靠会话,他们也无法提供会话支持 (3)、对于NetTcpBindingNetNamedPipeBinding来说,由于其传输类型本身具有支持会话的特性...二、WCF中的回话Asp.Net中的回话 1、WCF中回话的主要功能有以下: (1)、他们由调用程序显示启动或者关闭 (2)、会话期间传递的消息按照接收消息的顺序进行处理。...2、Asp.Net中的回话由System.Web.SessionState.HttpSessionState 类提供功能,它的主要功能如下: (1)、Asp.Net的回话是由服务器启动的 (2)、Asp.Net...id); } [DataContract] public class User { [DataMember] public int ID...{ get; set; } [DataMember] public string Name { get; set; } [DataMember]

75850

我的WCF之旅(13):创建基于MSMQ的Responsive Service

ClientService之间采用One-way MEP的话就意味着Client调用Service之后立即返回,它无法获得Service的执行结果,也无法捕捉Service运行的Exception。...下图简单表述了基于MSMQ的WCF Service中ClientService的交互。 ? 但是在有些场景 中,这是无法容忍的。再拿我在上一篇文章的Order Delivery的例子来说。...Client向Service提交了Order,却无法确认该Order是否被Service正确处理,这显然是不能接受的。...基于WCF的编程模式很容易地帮助我们实现对Soap Header的插入获取: 我们可以通过下面的方式获得当前Operation Context的Incoming Message HeadersOutgoing...System.Text; using System.Runtime.Serialization; namespace Artech.ResponsiveQueuedService.Contract { [DataContract

74370
领券