Mono(ccrewrite) Mono(ccrewrite)

ccrewrite - بازنویسی اسمبلی‌های CLR برای راستی‌آزمایی قراردادهای کد در زمان اجرا

ccrewrite --assembly=<assembly> [گزینه‌ها]

اسمبلی‌های CLR را بازنویسی می‌کند تا فراخوانی‌ها به فضای‌نام System.Diagnostics.Contracts را جهت انجام راستی‌آزمایی قراردادها در زمان اجرا تبدیل نماید. این فرآیند شامل توارث قرارداد برای متدهای مجازی نیز می‌شود.

اسمبلی باید با تعریف نماد CONTRACTS_FULL کامپایل شده باشد، در غیر این صورت فراخوانی متدهای قرارداد توسط کامپایلر حذف شده خواهند بود.

در حال حاضر تنها پیش‌شرط‌ها با استفاده از متد Contract.Requires() پشتیبانی می‌شوند. توارث قرارداد برای متدهای مجازی پشتیبانی می‌شود. تنها دامنه محدودی از عملیات‌ها و انواع را می‌توان در یک پیش‌شرط استفاده کرد؛ در صورتی که ccrewrite قادر به پردازش اسمبلی مشخص‌شده نباشد، یک پیام خطا نمایش داده خواهد شد.

اسمبلی مورد نظر برای بازنویسی. اگر گزینه --output مشخص نشده باشد، این فایل با نسخه بازنویسی‌شده رونویسی می‌شود.
استفاده از اطلاعات اشکال‌زدایی (debug) در صورت وجود، برای بهبود کارآمدی پیام‌های شکست قرارداد.
نمایش راهنمای ccrewrite و فهرست کردن گزینه‌های پیکربندی.
تعیین این‌که کدام انواع قرارداد در اسمبلی بازنویسی‌شده وجود داشته باشند: 0 = بدون قرارداد (No contracts)؛ 1 = شروط لازم در حالت انتشار (Release requires)؛ 2 = شروط لازم (Requires)؛ 3 = شروط تضمین (Ensures)؛ 4 = ناورداها (Invariants)؛ (هر سطح شامل تمامی سطوح قبلی نیز می‌شود)
نوشتن اسمبلی بازنویسی‌شده در فایل مشخص‌شده. اگر این گزینه ارائه نشود، فایل اسمبلی ورودی با نسخه بازنویسی‌شده رونویسی خواهد شد.
بازنویسی اسمبلی. اگر مقدار آن false باشد، هیچ عملیاتی انجام نمی‌شود.
پرتاب یک استثنای ContractException در صورت بروز شکست مدیریت‌نشده در قرارداد. رفتار پیش‌فرض استفاده از Assert است.

نوشته‌شده توسط Chris Bacon

حق نشر (C) 2010 متعلق به Chris Bacon. تحت مجوز MIT منتشر شده است.

برای جزئیات بیشتر به http://www.mono-project.com مراجعه کنید