গতিশীলভাবে কোড সংকলন ও সম্পাদন করার কাজটি সহজ করার জন্য আমি একটি প্যাকেজ, শার্পবাইট.ডায়নামিক লিখেছি । কোডটি এখানে বিস্তারিত হিসাবে এক্সটেনশন পদ্ধতিগুলি ব্যবহার করে যে কোনও প্রসঙ্গের অবজেক্টে আহ্বান করা যেতে পারে ।
উদাহরণ স্বরূপ,
someObject.Evaluate<int>("6 / {{{0}}}", 3))
ফেরত 3;
someObject.Evaluate("this.ToString()"))
প্রসঙ্গ বস্তুর স্ট্রিং প্রতিনিধিত্ব প্রদান করে;
someObject.Execute(@
"Console.WriteLine(""Hello, world!"");
Console.WriteLine(""This demonstrates running a simple script"");
");
এই বিবৃতিগুলি স্ক্রিপ্ট ইত্যাদি হিসাবে চালায়
এক্সিকিউটেবলগুলি সহজেই কারখানার পদ্ধতি ব্যবহার করে অর্জন করা যায়, যেমন এখানে উদাহরণে দেখা গেছে - আপনার প্রয়োজন সমস্ত উত্সের কোড এবং কোনও প্রত্যাশিত নামযুক্ত প্যারামিটারের তালিকা (টোকেনগুলি ট্রিপল-ব্র্যাকেট স্বরলিপি ব্যবহার করে এম্বেড করা হয়েছে, যেমন {{{0}} string, স্ট্রিংয়ের সাথে সংঘর্ষ এড়ানোর জন্য For ফর্ম্যাট () পাশাপাশি হ্যান্ডলবার্সের মতো সিনট্যাক্স):
IExecutable executable = ExecutableFactory.Default.GetExecutable(executableType, sourceCode, parameterNames, addedNamespaces);
প্রতিটি এক্সিকিউটেবল অবজেক্ট (স্ক্রিপ্ট বা এক্সপ্রেশন) থ্রেড-সেফ থাকে, সংরক্ষণ করা যায় এবং পুনরায় ব্যবহার করা যায়, কোনও স্ক্রিপ্টের মধ্যে থেকে লগিং সমর্থন করে, টাইমিংয়ের তথ্য সংরক্ষণ করে এবং শেষের ব্যতিক্রম দেখা গেলে, ইত্যাদি অনুমতি দেওয়ার জন্য প্রতিটিটিতে একটি অনুলিপি () পদ্ধতিও সংকলিত আছে সস্তা কপি তৈরি করা, অর্থাত্ অন্য তৈরির জন্য টেমপ্লেট হিসাবে স্ক্রিপ্ট বা এক্সপ্রেশন থেকে সংকলিত একটি এক্সিকিউটেবল অবজেক্ট ব্যবহার করা।
একটি ইতিমধ্যে সংকলিত স্ক্রিপ্ট বা বিবৃতি কার্যকর করার ওভারহেড তুলনামূলকভাবে কম, খুব ভাল মাঝারি হার্ডওয়্যারে একটি মাইক্রোসেকেন্ডের অধীনে, এবং ইতিমধ্যে সংকলিত স্ক্রিপ্ট এবং এক্সপ্রেশনগুলি পুনরায় ব্যবহারের জন্য ক্যাশে করা হয়।