लोगों की सामग्री को एक CSVfile में लिखने की कोशिश करना और फिर उसे निर्यात करना, हालाँकि मुझे बिल्ड एरर और इसकी विफलता मिल रही है। त्रुटि यह है:
cannot convert from 'System.IO.StreamWriter' to 'CsvHelper.ISerializer'
मुझे यकीन नहीं है कि ऐसा क्यों हो रहा है जब तक कि मैं निश्चित नहीं हूं, मैंने इसे इस तरह से लोड किया है।
private void ExportAsCSV()
{
using (var memoryStream = new MemoryStream())
{
using (var writer = new StreamWriter(memoryStream))
{
using (var csv = new CsvHelper.CsvWriter(writer))
{
csv.WriteRecords(people);
}
var arr = memoryStream.ToArray();
js.SaveAs("people.csv",arr);
}
}
}
यह सुझाव
—
जीरो मोस्टर्ट
CsvHelper.CsvWriter(TextWriter)
दायरे में नहीं है। दोहरा चेक करें कि आपको पैकेज का सही संस्करण मिल रहा है, और यह StreamWriter
सामान्य वर्ग ( System.IO.StreamWriter
) है। CsvWriter
डबल-चेक करने के लिए "परिभाषा पर जाएं" का उपयोग करें।
@JeroenMostert का मतलब क्या आप csvWriter को चेक कर सकते हैं? मैंने किया और इसका संबंध CSVhelper वर्ग से है जो CsvHelper.Configuration का उपयोग करता है; CsvHelper.TypeConversion का उपयोग करना; सिस्टम का उपयोग; System.Collections का उपयोग कर; System.Collections.Generic का उपयोग कर; System.Dynamic का उपयोग करना; System.Globalization का उपयोग करना; System.IO का उपयोग कर; System.Threading.Tasks का उपयोग कर;
—
एंडी स्टाव
हां, लेकिन जो कंपाइलर आपको बता रहा है वह यह है कि यह
—
जीरो मोस्टर्ट
CsvWriter
कंस्ट्रक्टर को इनवाइट कर रहा है जो कि ISerializer
कन्वर्जन करता है , और फेल होने के बाद से इसका कोई रूपांतरण नहीं है। इसे उस CsvWriter
कंस्ट्रक्टर को चुनना चाहिए था, जो उस TextWriter
से StreamWriter
विरासत में मिला है, इसलिए या तो वह कंस्ट्रक्टर गायब है (जो भी कारण हो) या कम्पाइलर का अधिभार संकल्प टूट गया है (थोड़ा कम संभावित, लेकिन अजीब चीजें हुई हैं)।
StreamWriter
लिएISerializer
?StreamWriter
.NET का ही हिस्सा है - यह एक विशिष्ट तृतीय पक्ष पैकेज से इंटरफेस को लागू नहीं कर सकता है।