.\" -*- mode: troff; coding: utf-8 -*- .\" .\" mono-config configuration page. .\" (C) Ximian, Inc. .\" Author: .\" Miguel de Icaza (miguel@gnu.org) .\" Paolo Molaro (lupus@ximian.com) .\" .TH Mono "mono-config" .SH "نام (NAME)" mono-config \- قالب فایل پیکربندی محیط اجرای Mono .SH "توضیحات (DESCRIPTION)" محیط اجرای Mono داده‌های پیکربندی را از فایل پیشوند نصب .IR /etc/mono/config ، فایل .I ~/.mono/config یا فایلی که توسط متغیر محیطی .B MONO_CONFIG مشخص شده است بارگذاری می‌کند. .PP به ازای هر اسمبلی بارگذاری‌شده، یک فایل پیکربندی با نام .I /path/to/the/assembly.exe.config و همچنین فایل .I ~/.mono/assemblies/ASSEMBLY/ASSEMBLY.EXT.config بارگذاری می‌شود. .PP این فایل رفتار محیط اجرا را کنترل می‌کند. .PP این فایل حاوی ساختاری شبیه به XML با بخش‌های گوناگون است که همگی درون بخش .B قرار دارند (در واقع برای تجزیه فایل از GMarkup استفاده می‌شود). .PP این صفحه راهنما، افزونه‌های مختص یونیکس و مختص Mono در فایل پیکربندی را شرح می‌دهد؛ برای جزئیات کامل، به صفحه وب مراجعه کنید. .SH "دستورالعمل ( directive)" شما از دستورالعمل dllmap برای نگاشت کتابخانه‌های مشترک (shared libraries) ارجاع داده‌شده توسط P/Invoke در اسمبلی‌های خود به یک کتابخانه مشترک متفاوت استفاده می‌کنید. .PP این ویژگی معمولاً برای نگاشت کتابخانه‌های ویندوز به نام کتابخانه‌های یونیکس به کار می‌رود. عنصر .B dllmap دو صفت دریافت می‌کند: .TP .I dll این مقدار باید همان رشته‌ای باشد که در صفت DllImport استفاده شده است و می‌تواند به صورت اختیاری دارای پیشوند "i:" باشد تا نشان دهد رشته باید بدون حساسیت به حروف بزرگ و کوچک تطبیق داده شود. .TP .I target این مقدار باید نام کتابخانه‌ای باشد که تابع در آن یافت می‌شود: این نام باید برای استفاده در توابع بومی بارگذاری کتابخانه‌های مشترک پلتفرم (مانند dlopen و غیره) مناسب باشد، بنابراین شاید بخواهید صفحات راهنمای مربوط به آن‌ها را نیز بررسی کنید. .SH "دستورالعمل ( directive)" این دستورالعمل می‌تواند برای نگاشت یک جفت مشخص از dll/تابع به یک کتابخانه متفاوت و همچنین نام تابع متفاوت استفاده شود. این عنصر باید درون عنصر .B dllmap که تنها صفت dll آن مشخص شده است قرار گیرد. .PP عنصر .B dllentry ۳ صفت دریافت می‌کند: .TP .I dll این کتابخانه مقصد است، جایی که تابع در آن یافت می‌شود. .TP .I name این نام تابع است همان‌طور که در متاداده ظاهر می‌شود: نام متد P/Invoke است. .TP .I target این نام تابعی است که باید به جای نام مشخص‌شده در متد P/Invoke جستجو شود. .SH "نگاشت بر اساس سیستم‌عامل و پردازنده (Mapping based on operating system and cpu)" هر دو عنصر .B dllmap و .B dllentry دو صفت زیر را مجاز می‌دانند که استفاده از یک فایل پیکربندی واحد و پشتیبانی از چندین سیستم‌عامل و معماری با نیازمندی‌های نگاشت متفاوت را آسان می‌کند: .TP .I os این نام سیستم‌عاملی است که نگاشت باید برای آن اعمال شود. مقادیر مجاز عبارتند از: linux, osx, solaris, freebsd, openbsd, netbsd, windows, aix, hpux. .TP .I cpu این نام معماری پردازنده‌ای است که نگاشت باید برای آن اعمال شود. مقادیر مجاز عبارتند از: x86, x86-64, sparc, ppc, s390, s390x, arm, mips, alpha, hppa, ia64. .TP .I wordsize این اندازه ثبات‌ها (registers) در معماری مقصد است که می‌تواند ۳۲ یا ۶۴ باشد. .PP مقدار هر دو صفت می‌تواند فهرستی از مقادیر مجاز باشد که با کاما از یکدیگر جدا شده‌اند. علاوه بر این، اولین نویسه می‌تواند یک .I '!' باشد تا معنای عبارت را معکوس کند. برای مثال، مقدار صفت "!windows,osx" به این معنی است که این مدخل در تمام سیستم‌عامل‌ها به جز ویندوز و OS X در نظر گرفته می‌شود. هیچ فاصله‌ای در هیچ بخشی از مقدار مجاز نیست. .PP توجه داشته باشید که مدخل‌های بعدی، مدخل‌های تعریف‌شده قبلی در فایل را بازنویسی (override) خواهند کرد. .SH "مثال‌ها (EXAMPLES)" مثال زیر ارجاعات به کتابخانه مشترک `cygwin1.dll' را به فایل `libc.so.6' نگاشت می‌کند. .nf .fi نام کتابخانه در صفت DllImport مجاز است در هر حالتی از حروف بزرگ و کوچک باشد، مانند مثال‌های زیر: .nf [DllImport ("cygwin1.dll")] [DllImport ("Cygwin1.dll")] [DllImport ("cygwiN1.Dll")] .fi .PP این مثال متد #C زیر را: .nf [DllImport ("libc")] static extern void somefunction (); .fi به .B differentfunction در .B libdifferent.so نگاشت می‌کند، اما هنگام اجرا در سیستم‌عامل‌های Solaris و FreeBSD به همان تابع در کتابخانه .B libanother.so نگاشت می‌گردد. .nf .fi .SH "همچنین ببینید (SEE ALSO)" .BR mono (1), .BR monodis (1), .BR mint (1)