2010-04-04 4 views
0

Когда я запускаю код saveXML ниже, он генерирует ошибку выше, почему?Webdev.Webserver прекратил работу

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Xml.Serialization; 
using System.IO; 

/// <summary> 
/// Summary description for Post 
/// </summary> 
public class Post 
{ 
    private int postIDCounter = 0; 
    private String DateCreated; 

    public Post() 
    { 
     Author = "unknown"; 
     Title = "unkown"; 
     Content = ""; 
     DateCreated = DateTime.Now.ToString(); 
     ID = postIDCounter++; 
    } 

    public int ID 
    { 
     get { return ID; } 
     set 
     { 
      if (ID != value) 
       ID = value; 
     } 
    } 

    public string Author 
    { 
     get { return Author; } 
     set 
     { 
      if (Author != value) 
       Author = value; 
     } 
    } 

    public string Title 
    { 
     get { return Title; } 
     set 
     { 
      if (Title != value) 
       Title = value; 
     } 
    } 

    public string Content 
    { 
     get { return Content; } 
     set 
     { 
      if (Content != value) 
       Content = value; 
     } 
    } 

    public void saveXML() 
    { 
     XmlSerializer serializer = new XmlSerializer(typeof(Post)); 
     Stream writer = new FileStream("..'\'App_Data'\'posts'\'" + new Guid(ID.ToString()).ToString() + ".xml", FileMode.Create); 
     serializer.Serialize(writer, this); 
     writer.Close(); 
    } 
} 

ответ

3

Все ваши переменные являются круглыми ссылками, которые циклически навсегда и, в конечном итоге, ваша система останавливается/падает.

public string Content 
    { 
     get { return Content; } 

Например, вы говорите здесь, что получить, возвращают содержание, но возвращение снова получить содержание, и получить контент, и вы понимаете? это цикл навсегда в этой строке ... и во всех строках, что у вас есть что-то вроде этого.

Попробуйте сделать это.

string inside_Content; 

    public string Content 
    { 
     get { return inside_Content; } 
     set { inside_Content = value;} 
    } 
Смежные вопросы