是否可以将对象从调试模式作为字符串?

时间:2014-02-12 15:51:01

标签: c#

为了测试一个类,我需要一些真实的虚拟对象。

我的问题是:调试时我可以将已构造的对象作为字符串吗?我想复制此字符串并将其粘贴(分配)到测试类中的虚拟对象。

public class Employee
{
    public string Name;
    public int Age;
    public List<string> NamesOfChildren;
}

例如,对于调试模式下此类的实例,我需要一些像

这样的字符串
  

new Employee(){Name =“Serdar”,Age = 30,NamesOfChildren = new List(){“NameOfChild1”,“NameOfChild2”}}

换句话说,在调试模式下,我可以看到所有公共和私有字段及其对象的值。我可以将此数据作为字符串吗?我需要它在编辑器中创建该对象的格式。 (当然只有公共领域)

1 个答案:

答案 0 :(得分:1)

我不确定私有字段,但我相信Json.NET可以帮助你。您将不得不添加对象名称,但我相信您可以轻松地自动执行此操作。

您可以使用Nuget安装它: 安装包Newtonsoft.Json

您可以在以下网址找到更多信息:http://james.newtonking.com/json

以下是他们网站的示例:

Product product = new Product();
product.Name = "Apple";
product.Expiry = new DateTime(2008, 12, 28);
product.Sizes = new string[] { "Small" };

string json = JsonConvert.SerializeObject(product);
//{
//  "Name": "Apple",
//  "Expiry": "2008-12-28T00:00:00",
//  "Sizes": [
//    "Small"
//  ]
//}

反序列化对象也是一样的想法:

string json = @"{
  'Name': 'Bad Boys',
  'ReleaseDate': '1995-4-7T00:00:00',
  'Genres': [
    'Action',
    'Comedy'
  ]
}";

Movie m = JsonConvert.DeserializeObject<Movie>(json);

string name = m.Name;
// Bad Boys