में एक विस्तार विधि को परिभाषित करने के लिए कैसे मैं ScriptCS (जो कि कमाल है!) के साथ खेल रहा हूं, लेकिन मैं को किसी .csx स्क्रिप्ट फ़ाइल के भीतर एक एक्सटेंशन विधि को परिभाषित करने का तरीका नहीं समझ सका।एक स्क्रिप्ट सीएसएक्स स्क्रिप्ट
using System.IO;
public static class Extensions
{
public static string Remove(this string source, params string[] toRemove)
{
foreach(var r in toRemove)
{
source = source.Replace(r,"");
}
return source;
}
}
string[] entries =
Directory
.GetFiles(
@"C:\Users\blah\blah",
"*.mp4",
SearchOption.AllDirectories)
.Select(p => p.Remove("Users"))
.ToArray();
foreach(var e in entries)
{
Console.WriteLine(e);
}
यह त्रुटि पैदावार:
इस उदाहरण लें
error CS1109: Extension methods must be defined in a top level static class; Extensions is a nested class
मेरा अनुमान है कि कि ScriptCS कुछ वर्ग जो एक्सटेंशन नेस्ट किए जाने की खड़ी कर रहा है में सीएसएक्स लपेटता, वहाँ किसी भी है इस के आसपास रास्ता?
यह रोज़लिन में एक सीमा है। देखें: http://social.msdn.microsoft.com/Forums/en-US/roslyn/thread/7c0a18eb-d37a-40e2-a26c-edb59b8f5cf3/। तो वर्तमान में आप '.csx' फ़ाइलों में एक्सटेंशन विधियों को परिभाषित नहीं कर सकते हैं। आपको उन्हें एक डीएल में डालना होगा और डीएलएल को संदर्भित करना होगा। – nemesv
इस @nemesv का जवाब योग्य =) धन्यवाद – TJB