cas*_*rle 18 debugging visual-studio-2010
在VS2010中进行调试时,有没有办法将数组/列表/集合数据保存到文件中?
例如,在此代码中:
var addressGraphs = from a in context.Addresses
where a.CountryRegion == "Canada"
select new { a, a.Contact };
foreach(var ag in addressGraphs) {
Console.WriteLine("LastName: {0}, Addresses: {1}", ag.Contact.LastName.Trim(),
ag.Contact.Addresses.Count());
foreach(var Address in ag.Contact.Addresses) {
Console.WriteLine("...{0} {1}", Address.Street1, Address.City);
}
}
Run Code Online (Sandbox Code Playgroud)
我想在第一个'foreach'行设置断点,然后将'addressGraph'中的数据保存到文件中.
其中'a'包含以下字段:
int addressID
string Street1
string City
<Ect.>
Run Code Online (Sandbox Code Playgroud)
和"联系"包含以下字段:
string FirstName
string LastName
int contactID
<Ect.>
Run Code Online (Sandbox Code Playgroud)
我希望该文件包含集合中每个项目的每个字段的值.
我没有看到明显的方法来做到这一点.可能吗?
Mrc*_*ief 28
当您的断点被命中时,打开Immediate
窗口并使用Tools.LogCommandWindowOutput将输出转储到文件:
>Tools.LogCommandWindowOutput c:\temp\temp.log
?addressGraphs
>Tools.LogCommandWindowOutput /off
Run Code Online (Sandbox Code Playgroud)
注意:您可以使用Log
哪个是别名Tools.LogCommandWindowOutput
更新:
该>
角色是非常重要的.此外,log
别名区分大小写.看截图:
小智 6
我也遇到过这样一个问题,但在VS2013中.我必须在调试时保存数组内容.
例如,我需要保存名为"trimmedInput"的双数组内容.我这样做:
你会看到所有的价值观.现在您可以全部选择它们(Ctrl + A)并复制(Ctrl + C).
这就是我所知道的简单方法.没有额外的努力.希望我的描述能帮到你!
PS对不起截图上的非英文界面.所有必要的信息都写在文本中.
使用此方法可以实现类似的效果:
我构建了一个在所有项目中使用的扩展方法,它是一个通用且更强大的 ToString() 方法,可以显示任何对象的内容。我在此链接中包含了源代码: https ://rapidshare.com/files/1791655092/FormatExtensions.cs
更新: 您只需将 FormatExtensions.cs 放入项目中并更改 FormatExtensions 的命名空间以与项目的基本命名空间一致。因此,当您处于断点时,您可以在监视窗口中键入: myCustomCollection.ToStringExtended()
并将输出复制到任何您想要的位置
归档时间: |
|
查看次数: |
10186 次 |
最近记录: |