इस कोड को देखते हुए ....स्थिर संदर्भ में गैर स्थैतिक विधि का उपयोग नहीं कर सकते हैं?
public class CalibrationViewModel : ViewModelBase
{
private FileSystemWatcher fsw;
public CalibrationViewModel(Calibration calibration)
{
fsw = new FileSystemWatcher
{
Path = @"C:\Users\user\Desktop\Path\ToFile\Test_1234.txt",
Filter = @"Test_1234.txt",
NotifyFilter = NotifyFilters.LastWrite
};
fsw.Changed += (o, e) =>
{
var lastLine = File.ReadAllLines(e.FullPath).Last();
Dispatcher.BeginInvoke((Action<string>) WriteLineToSamplesCollection, lastLine); //line that cites error
};
}
private void WriteLineToSamplesCollection(string line)
{
// do some work
}
}
क्यों मैं त्रुटि हो रही है, 'स्थिर संदर्भ में गैर स्थैतिक विधि BeginInvoke तक नहीं पहुंच पा'?
मैंने एसई पर कई अन्य उदाहरणों को देखा है और ऑब्जेक्ट बनने से पहले एक फ़ील्ड का उपयोग करने की कोशिश कर रहे अधिकांश उद्धरण जैसे कि वे एक स्थैतिक तरीके से एक गैर स्थैतिक क्षेत्र का उपयोग करने की कोशिश कर रहे थे, लेकिन मुझे समझ में नहीं आता कि क्या यह मेरे कोड के बारे में है जो एक ही त्रुटि का आह्वान कर रहा है।
आखिरकार, मैं इस विशिष्ट समस्या/कोड को ठीक करने के लिए क्या कर सकता हूं?
अद्यतन: 'विधि' के साथ समस्या को प्रतिबिंबित करने के लिए निश्चित शीर्षक और 'संपत्ति' नहीं। मैंने यह भी कहा कि कक्षा ViewModelBase लागू करती है।
ध्यान दें कि आप किसी भी 'एप्लिकेशन' ऑब्जेक्ट के बिना WPF का उपयोग कर सकते हैं, जिस स्थिति में 'Application.Current' 'null' है, जिसका अर्थ है कि अधिक सुरक्षित तरीका काम नहीं करेगा। – hvd
@ एचवीडी राइट, हालांकि यह केवल असाधारण मामलों में होना चाहिए (जैसे Winforms ऐप में WPF सामग्री होस्ट करना)। अन्यथा नियमित WPF अनुप्रयोगों पर जा रहे हैं और 'एप्लिकेशन' कक्षा का उदाहरण नहीं होने से बहुत सारे मुद्दे सामने आते हैं (जैसे कि, और संसाधन-संबंधित सामान)। –
निश्चित रूप से, सहमत हुए। और यहां तक कि उस स्थिति में, अगर कुछ कोड को 'एप्लिकेशन' ऑब्जेक्ट की आवश्यकता होती है, तो प्रवेश बिंदु में स्पष्ट रूप से एक बनाना संभव है, जो ठीक काम करेगा। – hvd