【问题标题】:C#: 'System.StackOverflowException' occurred in mscorlib.dllC#:在 mscorlib.dll 中发生“System.StackOverflowException”
【发布时间】:2012-07-08 07:48:45
【问题描述】:

今天早上我正在测试我的代码,突然我得到了这个错误。我不知道在这里做什么,因为直到昨天晚上它还在工作。

我查看 Stackoverflow 网站的解决方案,但解决方案是基于原始代码并且是本地的。

我希望有人能告诉我这里有什么问题吗?这个问题有解决办法吗??

【问题讨论】:

  • 问题似乎来自您的数据。 XML 文件似乎包含某种循环引用。我建议仔细检查它的内容。
  • 我第二个@FrédéricHamidi。发布您的文件,如果它不是太大的话。
  • @Yorye Nathan:文件太大了……我该怎么办??
  • 开始分解,直到找到罪魁祸首。
  • 也许您的属性设置器之一分配给属性而不是基础字段。 int MyProperty{set{MyPropery=value;}}

标签: c# winforms visual-studio-2010 stack-overflow


【解决方案1】:

由于循环引用,您的数据可能不再是有效的 XML。向下钻取并检查子集是否有问题。或者尝试一些工具来检查他们是否可以更快地查明问题。对于工具,我指的是像 xmlspy 这样的应用程序(甚至是像 http://www.w3schools.com/dom/dom_validate.asp 这样的在线检查)

【讨论】:

  • XML 文件中的循环引用是什么样的?
  • 感谢上帝终于 :) 你救了我的命:我的循环引用是 SelectedDate="{Binding RelativeSource={RelativeSource Self}}"
【解决方案2】:

在我的 C# Windows 窗体应用程序代码中,引发“System.StackOverFlowException”的循环引用(不在 XML 文件中)看起来像这样,根据@zmbq 的评论,我采取的方法是逐步打破:

class A
{
//Class A code

class B
{
    //Class B code
}
}

class C
{
    A a = new A();
    B b = new B();
    C c = new C(); /*CALLING THE SAME CONSTRUCTOR IN CIRCULAR FASHION*/
}

我删除了对 C 类的构造函数调用(这实际上是必要的),现在它可以正常工作了!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多