ZZZ Projects Eval Expression (Z.Expressions.Eval) v6.3.5 – Execute C# Expressions at Runtime
اجرای Expressionهای پویا و کامپایل کدهای C# در زمان اجرا
Specification
| Feature | Expression-Evaluation |
|---|
| Technology | .Net Core, .Net Framework |
|---|
توضیحات:
همه تصمیمهای یک برنامه از قبل داخل سورس کد نوشته نمی شوند. گاهی کاربر فرمول جدیدی تعریف میکند، گاهی یک فیلتر سفارشی میسازد یا حتی بخشی از منطق برنامه باید هنگام اجرا مشخص شود. ZZZ Projects Eval Expression برای چنین سناریوهایی ساخته شده است؛ کتابخانه ای که Expressionهای C# و Dynamic LINQ را در Runtime اجرا میکند و از عبارتهای ساده تا کدهایی که شامل شرط، حلقه، Lambda Expression، Extension Method و متدهای LINQ هستند را پردازش میکند. همین موضوع دست برنامه نویس را برای ساخت نرم افزارهای قابل تنظیم بازتر میگذارد.
روش اجرای Expressionها هم بسته به شرایط فرق میکند. برای مواردی که فقط یک بار قرار است اجرا شوند، Execute انتخاب مناسبی است، اما وقتی همان Expression بارها با ورودیهای مختلف استفاده میشود، Compile عملکرد بهتری دارد چون فقط یک بار کامپایل انجام میشود و دفعات بعد همان نسخه آماده اجرا خواهد شد. پارامترها را هم میتوان از مسیرهای مختلف ارسال کرد؛ از Anonymous Type و نمونههای کلاس گرفته تا ExpandoObject، Dictionary یا پارامترهای موقعیتی.
Dynamic LINQ فقط برای نوشتن Queryهای پویا نیست. میتوانید عملیات Filter، Order و Select را هنگام اجرای برنامه تغییر دهید، Contextهای جداگانه برای ارزیابی Expression تعریف کنید، SafeMode را برای کنترل بیشتر فعال کنید یا Keyword و Methodهای اختصاصی خودتان را به محیط اجرا اضافه کنید. این کتابخانه با .NET Framework 4.0 و نسخههای جدیدتر، .NET Core 2 به بعد و .NET 5 و بالاتر سازگار است.
ویژگی ها:
- اجرای Expression و کدهای C# در Runtime
- کامپایل Expressionها برای اجرای مکرر
- کار با Queryهای Dynamic LINQ
- دریافت پارامترها به روشهای مختلف
- سازگار با Lambda Expression و Extension Method
- تعریف Contextهای مختلف برای ارزیابی Expression
- استفاده از SafeMode
- افزودن Keyword و Methodهای سفارشی
مناسب برای:
سیستمهایی که قوانین، فرمولها یا Queryهای آنها در زمان اجرا تغییر میکنند، بیشترین استفاده را از این کتابخانه خواهند داشت. موتورهای گزارش گیری، سیستمهای محاسباتی، نرم افزارهای دارای Rule Engine یا برنامههایی که کاربران در آنها Expressionهای اختصاصی تعریف میکنند، نمونههایی از این کاربردها هستند.
سوالات متداول:
این کتابخانه با کدام نسخههای NET. سازگار است؟
طبق مستندات، .NET 5 و نسخههای جدیدتر، .NET Core 2 به بعد و .NET Framework 4.0 و بالاتر پشتیبانی میشوند.
چه تفاوتی بین Execute و Compile وجود دارد؟
اگر یک Expression فقط یک بار اجرا شود، Execute کافی است. اما زمانی که همان Expression بارها با پارامترهای متفاوت استفاده میشود، Compile انتخاب مناسب تری خواهد بود.
آیا Dynamic LINQ در این کتابخانه وجود دارد؟
بله. عملیاتی مانند Filter، Order و Select را میتوان هنگام اجرای برنامه به صورت پویا انجام داد.
آیا Expressionها میتوانند دادههای برنامه را به عنوان ورودی دریافت کنند؟
بله. ارسال پارامتر از طریق Anonymous Type، نمونههای کلاس، ExpandoObject، Dictionary و مقادیر موقعیتی امکان پذیر است.









Reviews
Clear filtersThere are no reviews yet.