天兒真好人錯誤:類型System.NullReferenceException「的異常出現在EXE
我不斷收到上面,每當我跑這個錯誤並雞姦了我,爲什麼。
我做了一個步驟,發現當我點擊添加對象到集合(在下面的代碼中標記)時發生異常。任何想法可能會導致這種情況?
Img和Category類是具有inotify接口的普通ol類,而Movies類具有Observable集合接口。
不管怎麼說,這裏是有問題的代碼...
public void LoadMovieLibrary(string libraryfile , Movies obj)
{
try
{
var libraryXML = XElement.Load(libraryfile);
if (libraryXML != null)
{
IEnumerable<XElement> movies = from element in libraryXML.Descendants("movie") select element;
foreach (XElement movie in movies)
{
ObservableCollection<Category> categoryGroup = new ObservableCollection<Category>();
IEnumerable<XElement> categories = from element in movie.Descendants("category") select element;
foreach (XElement category in categories)
{
categoryGroup.Add(
new Category(
int.Parse(category.Attribute("id").Value) ,
category.Attribute("name").Value
)
);
}
ObservableCollection<Img> imgGroup = new ObservableCollection<Img>();
IEnumerable<XElement> imgs = from element in movie.Descendants("image") select element;
foreach (XElement img in imgs)
{
imgGroup.Add(
new Img(
img.Attribute("type").Value ,
img.Attribute("url").Value
)
);
}
try
{
obj.Add(// <= this is where it breaks
new Movie(
movie.Element("name").Value ,
int.Parse(movie.Element("id").Value) ,
movie.Element("imdbid").Value ,
movie.Element("overview").Value ,
movie.Element("tagline").Value ,
movie.Element("released").Value ,
int.Parse(movie.Element("runtime").Value) ,
movie.Element("trailer").Value ,
categoryGroup ,
imgGroup ,
movie.Element("filename").Value
)
);
}
catch (Exception exception)
{
MessageBox.Show(exception.Message , "Error" , MessageBoxButton.OK , MessageBoxImage.Error);
}
}
}
}
catch (Exception exception)
{
MessageBox.Show(exception.Message , "Error" , MessageBoxButton.OK , MessageBoxImage.Error);
}
}
編輯:
非常感謝
原來我離開了上下劃線...
- movie.Element(「imdbid」).Value
和它應該被
- movie.Element( 「imdb_id」).value的
我猜想這個xml文件沒有預期的元素之一(所以你在'null'上做'.Value')。那或者'obj'。儘管如此,你仍然可以比我們更好地瞭解它。 –