البرمجة

تكوين الرؤية الداخلية في .Net Core.

في بيئة .Net Core، يُستخدم ملف “project.json” لتكوين خصائص الحزمة والتي تمثل بديلاً عن ملفات التجميع التقليدية مثل “AssemblyInfo.cs” في تطبيقات .Net التقليدية. ومن بين الخصائص التي يمكن تكوينها في “project.json” هي الخصائص الخاصة بالتجميعات مثل العنوان، والإصدار، وحقوق النشر، ولكن هناك خصائص لم يُوضح بعد كيفية تكوينها في “project.json”، مثل “InternalsVisibleTo”.

إذا كنت ترغب في تحديد أن تجميعًا آخر يجب أن يكون لديه رؤية داخلية (Internal visibility) إلى المشروع الحالي، فإن طريقة تحقيق ذلك في “project.json” ليست واضحة. ولكن يمكن اللجوء إلى البدائل لتحقيق نفس الغرض.

أحد البدائل الممكنة هو استخدام ملف “AssemblyInfo.cs” بشكل مكمل، حيث يمكنك تعريف الخصائص المرتبطة بالرؤية الداخلية (InternalsVisibleTo) في هذا الملف. يمكنك إضافة هذه السمة يدويًا مثلما تفعل في التطبيقات التقليدية. على سبيل المثال، يمكنك إضافة السطر التالي إلى “AssemblyInfo.cs”:

csharp
[assembly: InternalsVisibleTo("NameOfAnotherAssembly")]

وهذا سيجعل الأعضاء الداخلية في التجميع الحالي مرئية للتجميع المُسمى “NameOfAnotherAssembly”.

بالتالي، على الرغم من عدم دعم تكوين “InternalsVisibleTo” مباشرة في “project.json”، إلا أنه يمكن استخدام “AssemblyInfo.cs” بشكل إضافي لتحقيق هذه الوظيفة.

المزيد من المعلومات

بالإضافة إلى استخدام ملف “AssemblyInfo.cs”، يمكنك أيضًا استخدام ميزة الإعدادات المتقدمة في ملف “project.json” لتحقيق نفس الهدف. على الرغم من أنه ليس هناك خاصية مباشرة لـ “InternalsVisibleTo” في “project.json”، يمكنك استخدام ميزة “buildOptions” لتنفيذ الإعدادات الدقيقة.

على سبيل المثال، يمكنك إضافة ما يلي إلى ملف “project.json” لتكوين الرؤية الداخلية لتجميع آخر:

json
{ "buildOptions": { "debugType": "portable", "xmlDoc": true, "emitEntryPoint": true, "keyFile": "key.snk", "copyToOutput": { "include": [ "file1.xml", "file2.txt" ], "exclude": [ "excluded.json" ] }, "define": [ "DEBUG", "TRACE" ], "warningsAsErrors": true, "allowUnsafe": true, "platform": "x64", "configurations": { "Debug": { "buildOptions": { "define": [ "DEBUG", "TRACE" ], "optimize": false, "warningsAsErrors": true, "allowUnsafe": true } }, "Release": { "buildOptions": { "define": [ "RELEASE", "TRACE" ], "optimize": true, "warningsAsErrors": false, "allowUnsafe": false } } } } }

في هذا المثال، يتم استخدام “buildOptions” لتعيين إعدادات متقدمة لعملية البناء، وهذا يشمل القدرة على تحديد الإعدادات الخاصة بـ “InternalsVisibleTo” في الأقسام المخصصة لكل إعداد (Debug و Release).

من الجدير بالذكر أنه قد يتطلب هذا النهج بعض المعرفة المسبقة بعمليات البناء والتكوين في .Net Core، ولكنه يوفر مزيدًا من المرونة في ضبط الإعدادات بشكل دقيق وفقا لاحتياجات المشروع.

بهذه الطريقة، يمكنك تحقيق الرؤية الداخلية للتجميعات باستخدام ملف “project.json” وميزة “buildOptions” دون الحاجة إلى الاعتماد على “AssemblyInfo.cs” بشكل حصري.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر