是的,我看到了另一个主题:Visual Studio Debugger - Automatic Variable Assignment
但我今天需要一个解决方案,在我看到它之前找到一个解决方案,我想知道那里是否有更好的解决方案?
我的情况: 我有一个实体列表,我根据很多因素设置了一些与政策相关的属性。但是它还没有实现,或者我只是想在实体有权利时测试UI,何时不能(尽可能快地更改实际工作)。
所以我将实体设置为好像,所以我可以用这个来测试UI。但我不想破坏列表中的每个元素,并将标志从true更改为false(以测试其他情况)。我找到了一种自动从调试器更改变量的方法。我提出了这个解决方案:
简化示例:
namespace AutoVariable
{
class Program
{
static void Main(string[] args)
{
try
{
new Program().Entrance();
Console.ReadLine();
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e.Message);
}
}
public void Entrance()
{
var entities = new List<Entity>
{
new Entity() { Name = "A" },
new Entity() { Name = "B" },
new Entity() { Name = "C" }
};
entities.ForEach(setRight);
entities.ForEach(Console.WriteLine);
}
protected void setRight(Entity entity)
{
//not implemented
bool hasRight = true;
entity.HasRight = hasRight;
}
}
class Entity
{
public bool HasRight { get; set; }
public string Name { get; set; }
public override string ToString()
{
return string.Format("{0} - {1}", Name, HasRight);
}
}
}
我将条件断点设置为:entity.HasRight = hasRight;
有这个条件:(hasRight = false)
所以hasRight将为false并且断点永远不会受到影响。
但它也可用于其他情况,例如在Jason Irwin的帖子中,你可以使用类似的东西:(userName = "Jason").Length < 1
所以我的问题是它是一个很好的解决方案,或者我错过了'原生'调试器工具集中的某些内容?
提前致谢!
内格拉
答案 0 :(得分:1)
您想使用调试器执行操作吗?有一个叫Trace Points的东西。
这里解释: http://weblogs.asp.net/scottgu/archive/2010/08/18/debugging-tips-with-visual-studio-2010.aspx 并转到“TracePoints - 遇到BreakPoint时的自定义操作”
这就是你需要的吗?