将SerializableAttribute序列化为xml

简介:

从这个例子中,你可以知道:

1,如何将stream转化为string

2,如何将searializableAttribute属性序列化为xml

 

有MetadataObject定义为:

 

复制代码

   
   
/// < remarks />
[System.Xml.Serialization.XmlIncludeAttribute(typeof(ActionParameter))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Action))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(AssociationGroup))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(TypeDescriptor))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Parameter))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(FilterDescriptor))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Identifier))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(LobSystemInstance))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(IndividuallySecurableMetadataObject))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(MethodInstance))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Association))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Method))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Entity))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(LobSystem))]
[System.Xml.Serialization.XmlIncludeAttribute(typeof(Model))]
[System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
[System.SerializableAttribute()]
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.ComponentModel.DesignerCategoryAttribute("code")]
[System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://schemas.microsoft.com/windows/2007/BusinessDataCatalog")]
public abstract partial class MetadataObject
{

private LocalizedDisplayName[] localizedDisplayNamesField;

private Property[] propertiesField;

private string nameField;

private string defaultDisplayNameField;

private bool isCachedField;

public MetadataObject()
{
this.isCachedField = true;
}

///
< remarks />
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable = false)]
public LocalizedDisplayName[] LocalizedDisplayNames
{
get
{
return this.localizedDisplayNamesField;
}
set
{
this.localizedDisplayNamesField = value;
}
}

///
< remarks />
[System.Xml.Serialization.XmlArrayItemAttribute(IsNullable = false)]
public Property[] Properties
{
get
{
return this.propertiesField;
}
set
{
this.propertiesField = value;
}
}

///
< remarks />
[System.Xml.Serialization.XmlAttributeAttribute()]
public string Name
{
get
{
return this.nameField;
}
set
{
this.nameField = value;
}
}

///
< remarks />
[System.Xml.Serialization.XmlAttributeAttribute()]
public string DefaultDisplayName
{
get
{
return this.defaultDisplayNameField;
}
set
{
this.defaultDisplayNameField = value;
}
}

///
< remarks />
[System.Xml.Serialization.XmlAttributeAttribute()]
[System.ComponentModel.DefaultValueAttribute(true)]
public bool IsCached
{
get
{
return this.isCachedField;
}
set
{
this.isCachedField = value;
}
}
}
复制代码

 

 

下面一个函数将其转化为xml的string:

 

复制代码

   
   
public static string GetXmlFromModel(MetadataObject metadataObject)
{
MemoryStream ms = new MemoryStream();
XmlSerializer serializer = new XmlSerializer(metadataObject.GetType());
serializer.Serialize(ms, metadataObject);
return System.Text.ASCIIEncoding.ASCII.GetString(ms.ToArray(), 0, ms.ToArray().Length);
}
复制代码
目录
相关文章
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
48 1
|
7月前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
113 0
|
7月前
|
XML 存储 API
[序列化协议] --- XML
[序列化协议] --- XML
79 0
|
7月前
|
XML 存储 JSON
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)
开发时经常会遇到需要保存配置的情况,最常见的实现方式是将对象序列化成Json,再写入文件并保存到本地磁盘。 本文将使用开源库**ApeFree.DataStore**来替换原有的对象存储过程,实现一个可以随意切换存储方式的对象存储方法。 ApeFree.DataStore是一款可配置的对象存储库,支持在不同平台/介质中对内存中的对象进行存储与还原(如本地存储、注册表存储)。支持配置序列化格式(如Json、Xml),支持配置压缩算法(如GZip、Defalte),支持配置加密算法(如AES、RSA)。
134 0
C# 对象存储 (轻松实现序列化 | Xml | Json | 加密 | 压缩 | 注册表 | Redis)
|
XML JSON IDE
C#复杂XML反序列化为实体对象两种方式 (上)
C#复杂XML反序列化为实体对象两种方式
228 0
C#复杂XML反序列化为实体对象两种方式 (上)
|
XML JSON 数据格式
.NET中XML序列化和反序列化常用类和用来控制XML序列化的属性总结(XmlSerializer,XmlTypeAttribute,XmlElementAttribute,XmlAttributeAttribute,XmlArrayAttribute...)
.NET中XML序列化和反序列化常用类和用来控制XML序列化的属性总结(XmlSerializer,XmlTypeAttribute,XmlElementAttribute,XmlAttributeAttribute,XmlArrayAttribute...)
288 0
|
存储 XML JSON
二进制序列化器、XML序列化器、Json序列化器
序列化是将对象的状态信息转换未可以存储或传输的形式的过程。在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区读取或反序列化对象的状态,重新创建对象。
|
XML JavaScript 数据格式
【Groovy】xml 序列化 ( 使用 StreamingMarkupBuilder 生成 xml 数据 | mkp.xmlDeclaration() 生成 xml 版本数据 )
【Groovy】xml 序列化 ( 使用 StreamingMarkupBuilder 生成 xml 数据 | mkp.xmlDeclaration() 生成 xml 版本数据 )
385 0
【Groovy】xml 序列化 ( 使用 StreamingMarkupBuilder 生成 xml 数据 | mkp.xmlDeclaration() 生成 xml 版本数据 )
|
XML 数据格式
【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )
【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )
337 0
【Groovy】xml 序列化 ( 使用 MarkupBuilder 生成 xml 数据 | 标签闭包下创建子标签 | 使用 MarkupBuilderHelper 添加 xml 注释 )

相关课程

更多