bsng110
دوشنبه 18 شهریور 1387, 17:42 عصر
هوالحکیم
سلام عرض می کنم خدمت دوستان و اساتید محترم سایت
ببخشید که این سوال را مطرح می کنم ولی من خیلی جستجو کردم و چیزی در این مورد که می خواهم بیان کنم، در سایت پیدا نکردم. من نیاز دارم که یک یا چند دستور #C را که به صورت text دارم(با فرض اینکه از صحت کامپایل آنها مطمئن هستم) اجرا کنم. دقت کنید که می خواهم این عمل در زمان اجرا صورت گیرد، مثلاً فرض کنید قطعه کدی در زمان اجرا از طریق پایگاه داده یا حتی یک textbox ساده، گرفته می شود و می خواهیم این قطعه کد اجرا شود. برای این منظور باید از چه کلاسی استفاده کنم(کلاس را هم که بگویید، ان شاء الله می توانم بقیه اش را پیدا کنم اما اگه کد آماده هم داشته باشید که دیگه خیلی شرمنده تون می شم). در ضمن باید بگویم که دیده ام با استفاده از کلاس های System.Reflection از اسمبلی یک کلاس یا ... می سازند و یا اینکه از طریق System.Runtime چیز هایی مثل اجرای متد از dll انجام می دهند و ... ولی نمونه چیزی که می خواهم را ندیده ام. همچنین سوال دیگری که داشتم در مورد محاسبه گر بود، مثلاً فرض کنید یک عبارت ریاضی به صورت 2*3+5-6 داریم و می خواهیم نتیجه آن را بدانیم(این عبارت به صورت text می باشد). آیا در NET. کلاس هایی(یا متدهایی) برای این منظور در نظر گرفته شده است یا خیر؟
اگر دوستان در این زمینه ها اطلاعاتی دارند، ممنون می شوم در اختیار بنده نیز قرار دهند. دقت کنید که خودم قصد پیاده سازی این موارد را ندارم مثلاً نمی خواهم با استفاده از پشته ها، عبارات ریاضی را محاسبه کنم(برای قسمت دوم) و یا اینکه نمی خواهم دستوراتم را در یک تابع بگذارم و سپس آن تابع را اجرا کنم چرا که این دستورات Dynamic هستند و دائم در حال تغییر می باشند و فقط می خواهم، آنها را اجرا کنم. از این موضوع نیز در تهیه یک گزارش می خواهم استفاده کنم. در این گزارش به دلیل نارسایی سیستم حسابداری موسسه ای که برای آن کار می کنم، فیلدهای گزارش باید توسط فرمول های پیچیده ای محاسبه شوند و این فرمول ها ممکن است تغییر کند، به همین دلیل قصد ندارم چیز ایستایی بسازم که فعلاً کار کند و فردا با هر تغییر مجبور شوم مجدداً ... . می خواهم فرمولهای کلی برای تهیه گزارش آماده کنم و جزئیات آنها را در پایگاه ذخیره کنم تا در صورت تغییرات، مجبور باشم فقط جزئیات و پارامتر ها را عوض کنم ولی کلیات ثابت بمانند. این جزئیات نیز دقیقاً همان دستورات #C می باشند. همچنین یک مورد دیگر: آیا می توان از صحت کامپایل این کد ها نیز خبر دار شد؟ منظورم این است که آیا می توان فهمید که این کدها در برنامه امکان کامپایل و لینک و ... دارند یا خیر(به هر دلیلی مانند خطای لغوی یا گرامری یا لینکی یا ...)؟
منتظر پاسخ شما دوستان هستم.
یا علی
حق نگهدارتان
سلام عرض می کنم خدمت دوستان و اساتید محترم سایت
ببخشید که این سوال را مطرح می کنم ولی من خیلی جستجو کردم و چیزی در این مورد که می خواهم بیان کنم، در سایت پیدا نکردم. من نیاز دارم که یک یا چند دستور #C را که به صورت text دارم(با فرض اینکه از صحت کامپایل آنها مطمئن هستم) اجرا کنم. دقت کنید که می خواهم این عمل در زمان اجرا صورت گیرد، مثلاً فرض کنید قطعه کدی در زمان اجرا از طریق پایگاه داده یا حتی یک textbox ساده، گرفته می شود و می خواهیم این قطعه کد اجرا شود. برای این منظور باید از چه کلاسی استفاده کنم(کلاس را هم که بگویید، ان شاء الله می توانم بقیه اش را پیدا کنم اما اگه کد آماده هم داشته باشید که دیگه خیلی شرمنده تون می شم). در ضمن باید بگویم که دیده ام با استفاده از کلاس های System.Reflection از اسمبلی یک کلاس یا ... می سازند و یا اینکه از طریق System.Runtime چیز هایی مثل اجرای متد از dll انجام می دهند و ... ولی نمونه چیزی که می خواهم را ندیده ام. همچنین سوال دیگری که داشتم در مورد محاسبه گر بود، مثلاً فرض کنید یک عبارت ریاضی به صورت 2*3+5-6 داریم و می خواهیم نتیجه آن را بدانیم(این عبارت به صورت text می باشد). آیا در NET. کلاس هایی(یا متدهایی) برای این منظور در نظر گرفته شده است یا خیر؟
اگر دوستان در این زمینه ها اطلاعاتی دارند، ممنون می شوم در اختیار بنده نیز قرار دهند. دقت کنید که خودم قصد پیاده سازی این موارد را ندارم مثلاً نمی خواهم با استفاده از پشته ها، عبارات ریاضی را محاسبه کنم(برای قسمت دوم) و یا اینکه نمی خواهم دستوراتم را در یک تابع بگذارم و سپس آن تابع را اجرا کنم چرا که این دستورات Dynamic هستند و دائم در حال تغییر می باشند و فقط می خواهم، آنها را اجرا کنم. از این موضوع نیز در تهیه یک گزارش می خواهم استفاده کنم. در این گزارش به دلیل نارسایی سیستم حسابداری موسسه ای که برای آن کار می کنم، فیلدهای گزارش باید توسط فرمول های پیچیده ای محاسبه شوند و این فرمول ها ممکن است تغییر کند، به همین دلیل قصد ندارم چیز ایستایی بسازم که فعلاً کار کند و فردا با هر تغییر مجبور شوم مجدداً ... . می خواهم فرمولهای کلی برای تهیه گزارش آماده کنم و جزئیات آنها را در پایگاه ذخیره کنم تا در صورت تغییرات، مجبور باشم فقط جزئیات و پارامتر ها را عوض کنم ولی کلیات ثابت بمانند. این جزئیات نیز دقیقاً همان دستورات #C می باشند. همچنین یک مورد دیگر: آیا می توان از صحت کامپایل این کد ها نیز خبر دار شد؟ منظورم این است که آیا می توان فهمید که این کدها در برنامه امکان کامپایل و لینک و ... دارند یا خیر(به هر دلیلی مانند خطای لغوی یا گرامری یا لینکی یا ...)؟
منتظر پاسخ شما دوستان هستم.
یا علی
حق نگهدارتان