Отладчик Visual Studio ASP.NET MVC продолжает работу, когда я создаю новый объект - PullRequest
1 голос
/ 03 июня 2011

Последние 12 часов я пытаюсь понять, почему это происходит.

Я работаю в приложении ASP.NET MVC (C #), в котором я создал абстрактный класс, содержащий базовую информацию для всех будущих классов моделей.

Следуйте примеру кода, который ясделали:

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();}
        }
    }

Итак, я создал абстрактный класс, так как реализация для GetPerson и SavePersonInformation зависит от вида человека.Вот код, где я использую абстрактного класса Person в рабочем классе

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
        }
    }
}

А вот контроллер, где я использую Final Worker 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:: Запись функции: [Неизвестный метод] "

.

Я схожу с ума по этому поводу и держуя вернулся в реальный проект.

Есть идеи?Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 23 июня 2011

Код, который вычисляет хэш для объекта.Я беру все значения свойств, создаю строку и затем хеширую строку (я делаю это, чтобы узнать, действительно ли мне нужно сохранить информацию или только что просмотренный пользователь).Проблема в том, что я использовал Reflection для зацикливания всех свойств, и это вызовет проблему, когда вы делаете этот фрагмент кода и используете какое-то наследование.

0 голосов
/ 03 июня 2011

Когда отладчик Visual Studio неожиданно завершает работу и рассматриваемый процесс завершается, проблема обычно заключается в следующем:

  • Повреждение памяти в глубине CLR
  • Переполнение стека

Для вашего сценария я бы сказал, что случай переполнения стека гораздо более вероятен.Я бы установил точки останова в методах, которые вы пропустили, и повторно запустил сценарий.Если это переполнение стека, вы должны увидеть, как ваши методы получают многократные и бесконечные удары.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...