我已经尝试解决这个问题了一段时间了。
我在Visual Studio 2017中工作,并且有许多解决方案。除调试变量外,每个调试变量中的每一个都向我显示变量及其值。它运行完美。
我做了什么:
不能解决这个问题,关于我可以尝试的更多方法的任何想法?
编辑:澄清,调试时可以逐步执行代码,但是无法查看变量的值。
编辑编辑:正在做一些测试,我有新信息。虽然是一个断点,但我看了几个变量。
编辑编辑编辑
所有无法查看的变量已过时。
为了测试姿势,我删除了模型的所有变量,因此完全为空,然后将其初始化
public MySuperModel()
{
}
初始化
MySuperModel model = new MySuperModel();
通过将模型悬停或添加到watch / quickwatch来查看模型,会产生一条消息,表明它已过时。
等等,这很奇怪
答案 0 :(得分:0)
List<ClassA> list = new List<ClassA>();
ClassA retVal = list.Where(o => o.MyProperty1 == 1).FirstOrDefault();
这里也不例外(错误), retVal 为空,并且您将看不到该类的属性或属性值。
您要做的就是将一些项目添加到列表中。
List<ClassA> list = new List<ClassA>();
list.Add(new ClassA() { MyProperty1 = 1, MyProperty2 = 2 }); //adding item
ClassA retVal = list.Where(o => o.MyProperty1 == 1).SingleOrDefault();
答案 1 :(得分:0)
我已经找到解决问题的方法,我不知道它为什么起作用。
我会尝试解释。
我有一个包含IEnumerables的模型。
模型
public SuperModel()
{
public IEnumerable<MemberObject> memberList1{get; set;}
public IEnumerable<MemberObject> memberList2{get; set;}
}
控制器
public ActionResult Detail(Guid? id)
{
//Model initialized
SuperModel model = GetTheModel();
//Then there were 2 foreach loops throu my einumerables
foreach(var item in model.memberList1)
{
//Do things
}
foreach(var item in model.memberList2)
{
//Do things
}
}
如果我只离开调试器中的1个循环,那么调试器就中断了。
解决方法
public ActionResult Detail(Guid? id)
{
//Model initialized
SuperModel model = GetTheModel();
//Then there were 2 foreach loops throu my einumerables
model.memberList1.ToList().Foreach((item) =>
{
//Do Things
});
model.memberList2.ToList().Foreach((item) =>
{
//Do Things
});
}
芬兰
我不知道为什么使用.ForEach方法有效而使用经典的foearch()循环无效。但是,如果有人遇到类似问题,希望对您有所帮助。