धन्यवाद कोई समारोह है कि आप इस सीधे ऐसा करने की अनुमति होती है। हालांकि, जब आप प्रोग्रामिंग रूप से एक एफ # स्रोत फ़ाइल संकलित करना चाहते हैं, तो आप अपने आवेदन से एफ # कंपाइलर का आह्वान कर सकते हैं। ऐसा करने का सबसे आसान तरीका एफ # कोडडॉम प्रदाता का उपयोग करना है, जो एफ # पावरपैक (FSharp.Compiler.CodeDom.dll
असेंबली में) के हिस्से के रूप में उपलब्ध है। हालांकि, ध्यान दें कि आपको उपयोगकर्ता की मशीन पर F # कंपाइलर स्थापित करने की आवश्यकता है।
संकलक चलाने के लिए इस तरह मोटे तौर पर दिखेगा कोड:
open Microsoft.FSharp.Compiler.CodeDom
let provider = new FSharpCodeProvider()
let compiler = provider.CreateCompiler()
let parameters = new CompilerParameters
(GenerateExecutable = true, OutputAssembly = "file.exe")
let results = icc.CompileAssemblyFromFile(parameters, "filename.fs")
एक बार जब आप एक विधानसभा में स्रोत फ़ाइल संकलन, आप नेट प्रतिबिंब का उपयोग कर विधानसभा लोड और कुछ विशेष समारोह चलाने की आवश्यकता होगी या असेंबली से कक्षा (उदाहरण के लिए आप कुछ विशेष नाम के साथ एक समारोह की तलाश कर सकते हैं या कुछ विशेषता के साथ चिह्नित)।
(अतिरिक्त नोट, कोटेशन का उपयोग कर के रूप में या related SO question में उल्लेख किया है एक विकल्प हो सकता है, तो अपने स्रोत कोड अपेक्षाकृत आसान होता है अपनी खुद की दुभाषिया लेखन, लेकिन के रूप में शायद नहीं यदि आप एफ # की पूरी शक्ति का समर्थन करना चाहते हैं)
स्रोत
2010-04-09 14:25:46
http://stackoverflow.com/questions/372043/how-can-evaluate-an-expression-stored-as-a-string-in-f – Brian
का संभावित डुप्लिकेट क्या आप उस से F # कोड लोड करना चाहते हैं फाइल? – phimuemue
मुझे लगता है कि यह पोस्ट थोड़ा अलग सवाल पूछता है (हालांकि तकनीकी रूप से संबंधित)। ब्रायन द्वारा उल्लिखित एक साधारण अभिव्यक्ति के बारे में पूछता है, जबकि यह एक फाइल को संकलित/मूल्यांकन करने के बारे में पूछता है। तकनीकी रूप से, यह वही बात हो सकती है, लेकिन शायद यह काफी अलग उपयोग केस है। –