zoukankan
html css js c++ java
Serializable of an XPO Object
public
class
SerializablePerson : XPObject
{
public
SerializablePerson()
{ }
public
SerializablePerson(Session session) :
base
(session)
{ }
public
SerializablePerson(
string
name,
int
age)
{
this
.name
=
name;
this
.age
=
age;
}
private
string
name;
public
string
Name
{
get
{
return
name; }
set
{ name
=
value; }
}
private
int
age;
public
int
Age
{
get
{
return
age; }
set
{ age
=
value; }
}
private
SerializablePerson parent;
[XmlIgnore]
//
This would loop, and it's not needed
[Association(
"
Person-Children
"
)]
public
SerializablePerson Parent
{
get
{
return
parent; }
set
{ parent
=
value; }
}
[XmlIgnore]
//
We'll serialize the helper instead
[Association(
"
Person-Children
"
), Aggregated]
public
XPCollection
<
SerializablePerson
>
Children
{
get
{
return
GetCollection
<
SerializablePerson
>
(
"
Children
"
); }
}
AssociationXmlSerializationHelper childenSerializationHelper;
[XmlArray(
"
Children
"
)]
[XmlArrayItem(
typeof
(SerializablePerson))]
//
extend this as necessary
public
AssociationXmlSerializationHelper ChildrenSerializationHelper
{
get
{
if
(childenSerializationHelper
==
null
)
childenSerializationHelper
=
new
AssociationXmlSerializationHelper(Children);
return
childenSerializationHelper;
}
}
}
[TestFixture]
public
class
Tests
{
[Test]
public
void
Test( )
{
XmlSerializer xmlSerializer
=
new
XmlSerializer(
typeof
(SerializablePerson));
TextWriter textWriter
=
new
StringWriter( );
SerializablePerson parent
=
new
SerializablePerson(
"
Willy Webb
"
,
53
);
parent.Children.Add(
new
SerializablePerson(
"
Billy Blab
"
,
14
));
xmlSerializer.Serialize(textWriter, parent);
string
str
=
textWriter.ToString( );
Console.WriteLine(str);
TextReader textReader
=
new
StringReader(str);
SerializablePerson loadedParent
=
(SerializablePerson) xmlSerializer.Deserialize(textReader);
Assert.IsFalse(
object
.ReferenceEquals(parent, loadedParent));
Assert.AreEqual(parent.Name, loadedParent.Name);
Assert.AreEqual(parent.Age, loadedParent.Age);
Assert.AreEqual(parent.Children.Count, loadedParent.Children.Count);
Assert.AreEqual(parent.Children[
0
].Name, loadedParent.Children[
0
].Name);
Assert.AreEqual(parent.Children[
0
].Age, loadedParent.Children[
0
].Age);
}
}
查看全文
相关阅读:
Process 'command '/Users/lidaqiang/Library/Android/sdk/build-tools/27.0.3/aapt'' finished with non-zero exit value 1
合同诈骗无罪裁判要旨、判决理由及评析意见
互换不同种类毒品行为如何认定
正当防卫指导性案例以及研析
期待可能性理论的司法适用
共同犯罪认定方法
刑事案件鉴定意见常用质证要点
张明楷的100个刑法案例
刑事律师办案必备126部法律
正当防卫裁判要旨16条
原文地址:https://www.cnblogs.com/asyuras/p/701501.html
最新文章
jquery.jCal.js显示日历插件
CSS id 和 class 选择器
HTML 速查列表
HTML5 表单元素
HTML5之SVG
Struts2标签的<s:set>标签与JSTL的<c:set>标签
JSTL(c标签)与Struts2(s标签)标签的常用功能对比
Highcharts.Chart
hibernate 注解 联合主键映射
Struts2 注解模式
热门文章
<fmt:formatNumber>标签
Android tips(八)-->Android Studio打包apk,aar,jar包
Android应用程序(APK)的编译打包过程
Android应用程序内部启动Activity过程(startActivity)的源代码分析
Android应用程序启动过程源代码分析
Android应用程序的Activity启动过程简要介绍和学习计划
Android Activity启动流程源码全解析(2)
Android Activity启动流程源码全解析(1)
activity启动流程速记笔记
30岁前如何规划自己的人生?这9本书告诉你
Copyright © 2011-2022 走看看