簡體   English   中英

當我實例化一個新的 object 時,Visual Studio ASP.NET MVC 調試器不斷退出

[英]Visual Studio ASP.NET MVC debugger keeps quitting when I instantiate a new object

在過去的 12 個小時里,我一直在試圖理解為什么會發生這種情況。

我在一個 ASP.NET MVC (C#) 應用程序中工作,我在其中創建了一個抽象 class,其中包含所有未來模型 class 的基本信息。

按照它是我所做的代碼示例:

namespace TestingModelBind.Models.Home
{
    public abstract class Person 
    {
        public int PersonId {get; set;}
        public string Name { get; set; }
        public string LastName { get; set; }

        private string _personValueHash;
        public string PersonValueHash
        {
            get { return //call function that get the Hash for the Person}
            set { _personValueHash= value; }
        }

        public abstract void GetPerson();

        internal abstract void SavePersonInformation();

        public void SetPerson()
        {
           if (_personValueHash!=PersonValueHash){SavePersonInformation();}
        }
    }

因此,我創建了一個 Abstract Class,因為 GetPerson 和 SavePersonInformation 的實現取決於個人的種類。 這是我在工人 Class 中使用抽象 Class 人員的代碼

namespace TestingModelBind.Models.Home
{
    public class Worker: Person
    {
        public bool Consultant { get; set; }
        public string City { get; set; }
        public override void GetPerson()
        {
            // Code to retrieve the Worker Information Based on the PersonId
        }
        internal override void SavePersonInformation()
        {
            // Code to Persist the Worker Information
        }
    }
}

這里是 Controller 我使用最終工人 Class

public ActionResult Index(int? id)
{
    Worker dataModel = new Worker(); // This is the line where the Debugger Crash
    if (id!=null)
    {
        dataModel.PersonId = (int) id;
        dataModel.GetPerson();
    }
    return View(dataModel);
}

現在的問題是,在我嘗試實例化 Worker Class 時,Visual Studio 中的調試器崩潰給我一個錯誤消息:

“調試器無法繼續運行進程。進程已終止。”

我確實保留了來自 IntelliTrace 的文件,當它到達崩潰的那一刻時,我得到了這個

“沒有可用的源。沒有為任何調用堆棧幀加載符號。無法顯示源代碼。Itellitrace 時間上下文::Function 條目:[未知方法]”

.

我對此感到瘋狂,並且自從在實際項目中以來一直在阻止我。

有任何想法嗎? 太感謝了。

當 Visual Studio 調試器突然退出並且有問題的進程終止時,問題通常是以下之一

  • CLR 深處的 Memory 損壞
  • 堆棧溢出

對於您的情況,我會說 Stack Overflow 的情況更有可能發生。 我會在您省略的方法中設置斷點並重新運行場景。 如果是堆棧溢出,您應該會看到您的方法被反復無休止地擊中。

計算 Object 的 Hash 的代碼。 我正在獲取所有屬性值,創建一個字符串,然后對字符串進行哈希處理(我這樣做是為了知道我是否真的需要保存信息或用戶剛剛瀏覽過)。 問題是我使用反射對所有屬性進行循環,當您執行這段代碼並且使用一些 inheritance 時,這將導致問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM