मैं पता लगा मैं एक और आसानी से से एक स्क्रिप्ट लाइब्रेरी लोड नहीं कर सकते हैं:Roslyn स्क्रिप्ट फ़ाइल से संदर्भित स्क्रिप्ट पुस्तकालयों को कैसे लोड करें?
module.csx
string SomeFunction() {
return "something";
}
script.csx
ExecuteFile("module.csx");
SomeFunction() <-- causes compile error "SomeFunction" does not exist
इसका कारण यह है संकलक मॉड्यूल के बारे में पता नहीं है। सीएसएक्स जब यह script.csx afaiu संकलित करता है। मैं उस से दो फाइलों को लोड करने के लिए एक और स्क्रिप्ट जोड़ सकता हूं, और यह काम करेगा। हालांकि वह सुंदर नहीं है।
इसके बजाय मैं अपनी स्क्रिप्ट के भीतर एक विशेष वाक्यविन्यास "लोड मॉड्यूल" के लिए अपनी स्क्रिपथोस्ट जांच करना चाहता हूं, और वास्तविक स्क्रिप्ट निष्पादन से पहले उन मॉड्यूल को निष्पादित करना चाहता हूं।
script.csx
// load "module.csx"
SomeFunction()
अब
, कुछ बुनियादी स्ट्रिंग से निपटने के साथ, मैं जो (लाइनों कि // लोड होता है ...) लोड करने के लिए मॉड्यूल यह पता लगाने और (यहाँ सार https://gist.github.com/4147064) लोड फ़ाइलें कर सकते हैं :
foreach(var module in scriptModules) {
session.ExecuteFile(module);
}
return session.Execute(script)
लेकिन - हम रोसलिन बात कर रहे हैं के बाद से, वहाँ वाक्य रचना मैं तलाश कर रहा हूँ के लिए स्क्रिप्ट पार्स करने के लिए कुछ अच्छा तरीका है, है ना होना चाहिए?
और यह कोड के मॉड्यूल पुस्तकालयों को संभालने का एक तरीका भी हो सकता है?
:
और स्रोत समाधानकर्ता कॉन्फ़िगर जब आप स्क्रिप्ट चलाने पूरी बात का पहला संस्करण: https://github.com/joeriks/RoslynWebScript – joeriks