欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

关于WCF数据契约和序列化的疑惑

程序员文章站 2023-11-01 17:16:52
这几天研究一下WCF的数据契约的用途,可是参考一些文章和例子,发现有两个问题,我有些不是很明白请WCF的高手给回复一下问题,还让所有的迷惑的朋友和我一起明白。   我...
这几天研究一下WCF的数据契约的用途,可是参考一些文章和例子,发现有两个问题,我有些不是很明白请WCF的高手给回复一下问题,还让所有的迷惑的朋友和我一起明白。

 

我一开始参考微软提供的DEMO中的关于数据契约的例子,我声明一个自定义的类,在上面加上数据契约看下面

 

public class Perons

 

{

 

 

}

 

[DataContract(Namespace="https://EssentialWCF",

 

 

Name="StockPrice")]

 

public

class

 clsStockPrice

 

{

 

[DataMember(Name =

"CurrentPrice",

 

 

Order =

0,

 IsRequired =

true)]

 

public

double

 theCurrentPriceNow;

 

 

 

[DataMember(Name =

"CurrentTime",

 

 

Order =

1,

 IsRequired =

true)]

 

public

 DateTime theCurrentTimeNow;

 

[DataMember]

 

public Perons ss;

 

 

 

}

 

 

其他的都没有疑问关键是蓝色部分我那个是类,但是这个类没有加数据契约,微软的例子是这样的并用英文解释说这样的话是不能被序列化的,我出于好奇,就将这个例子跑起来了可是,给这个类里定义的变量的数值依然和有DataMember一样取到数值了。如果依照英文解释应该不能有数值显示出来在客户端啊。但是DEMO运行起来还是有数值的。不知道问题出现在哪里,我用序列化方法也是讲类有和没有DataContract进行序列化输出到XML看到依然和上面例子一样看不出来区别或者效果来,我在网上找了半天也没有看到类似的文章,所以请WCF的高手来解释一下这里的奥秘所在,最后有DEMO,呵呵,另外就是序列化在网络传输上的应用最好也有DEMO