在Visual Studio中将对象序列化为c#object literal

时间:2014-05-05 14:56:04

标签: c# visual-studio unit-testing

在视觉工作室,有没有办法可以"序列化"对象 - 文字c#表示法的对象,就像你可以将对象序列化为json一样?我有很多数据对象,我目前从数据库中获取,我想将其转换为文字对象,我可以将它们包含在单元测试中而不依赖于数据库。

例如,如果我在内存中有一个MyClass实例,它有字符串属性Prop1,Prop2,... PropN,我想将它序列化为一个看起来像这样的字符串c#:

var myClass1 = new MyClass(){
     Prop1 = "value 1",
     Prop2 = "value 2",
     ...
     PropN = "value n"
};

2 个答案:

答案 0 :(得分:2)

也许您最好的选择是默认的XML序列化,然后转换为字符串。

XmlSerializer serializer = new XmlSerializer(typeof(MyClass)); 
using (TextWriter writer = new StreamWriter(@"C:\myXml.xml"))
{
    serializer.Serialize(writer, details); 
} 

然后检索值:

TextReader reader = new StreamReader(@"D:\myXml.xml");
object obj = serializer.Deserialize(reader);
MyClass XmlData = (MyClass)obj;
reader.Close();

当然,您可以将序列化的类存储在单个文件等中,但它会成为文件合并/拆分问题。

答案 1 :(得分:-2)

您应该使用:

JavaScriptSerializer

(包括示例)