为了测试一个类,我需要一些真实的虚拟对象。
我的问题是:调试时我可以将已构造的对象作为字符串吗?我想复制此字符串并将其粘贴(分配)到测试类中的虚拟对象。
public class Employee
{
public string Name;
public int Age;
public List<string> NamesOfChildren;
}
例如,对于调试模式下此类的实例,我需要一些像
这样的字符串new Employee(){Name =“Serdar”,Age = 30,NamesOfChildren = new List(){“NameOfChild1”,“NameOfChild2”}}
换句话说,在调试模式下,我可以看到所有公共和私有字段及其对象的值。我可以将此数据作为字符串吗?我需要它在编辑器中创建该对象的格式。 (当然只有公共领域)
答案 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