Bu kod satırında bir hatam var ve hataya giremedim çünkü hata hemen ortaya çıkıyor. Herkes bana kodun tam olarak ne yapmaya çalıştığını söyler misiniz?Bu kod satırı ne anlama geliyor ve hatayı nasıl düzeltebilirim?
var image = ws2.Drawings.AddPicture(
imagesLocations[i].Name,
Image.FromFile(imagesLocations[i].Tests
.FirstOrDefault(t => t.IsReference)
.ImagePath));
Hata:
Exception thrown: 'System.IO.FileNotFoundException' in System.Drawing.dll
Additional information: C:\Users\.."full path"..\Initial.png
Bazı beyanlar:
ExcelWorksheet ws2 = package.Workbook.Worksheets.Add("Images");
// this is a list of locations, and "location" is a custom class
var imagesLocations = SelectedSession.GetTests()
.Where(t => t.IsReference)
.Select(t => t.Location)
.OrderBy(t => t.DateCreated)
.ThenBy(t => t.Name)
.ToList();
Test
yazılı sınıfının özel nesnesidir
IsReference
ImagePath
Yani hata o excel dosyasında koymak için bir yol bir görüntü almaya çalışıyor olmasıdır Test
için yerel dizedir belirli koşullar altında Test
için yerel Boolean
olduğunu. Ancak, görüntü mevcut değil. Bu kod satırını anlamalıyım, böylece olmasını engellemeliyim. Bunu nasıl yapabileceğimin herhangi bir yardımı çok yararlıdır. Lütfen
imagesLocations [i] .Tests.FirstOrDefault (t => t.IsReference) .ImagePath' 'için bir değişken oluşturun:
Bu
Bu da beni hazırlamak ve yayınlamak kontrol hata var yaptığıdır Ne değerlendirdiğini gör. İstisna göre bu, dosya sisteminizde bulunmayan "C: \ Users \ .." tam yolunu ".. \ Initial.png" döndürür. Ayrıca kodu okumayı daha kolay hale getirir. – HimBromBeere'.Where (t => t.IsReference)' yalnızca listenizdeki durumu bu koşula uyan girişleri seçecektir, böylece 'FirstOrDefault (t => t.IsReference)' çağrılırken bu denetimi atlayabilir ve 'FirstOrDefault 'komutunu kullanabilirsiniz.() 'yerine, listenizden sadece ilk öğeyi seçecek veya böyle bir öğe yoksa" null "olacaktır. – HimBromBeere
@himBromBeere yorumlarınız için teşekkür ederiz. Söylediğin gibi kırdım ve gerçekten okumak ve sürdürmek çok daha kolay. Sadece kazmaya çok zaman harcadım, bu yüzden aklımı engelledi. Herhangi bir geri bildirim gönderebilirseniz cevabı gönderirim. Bunu takdir ediyorum. –