الموارد في تنسيق الملف: .Resx
مورد تنسيق الملف: .resx يتكون من إدخالات XML، التي تقوم بتحديد الكائنات و السلاسل داخل علامات XML. و يتميز ملف .resx بأنه عند فتحه بواسطة محرر نص (مثل Notepad أو Microsoft Word)، يمكن الكتابة إليه ، تحليله و معالجته. عند عرض ملف .resx، يمكنك بالفعل مشاهدة النموذج الثنائي لكائن مضمّن (صورة على سبيل المثال) عندما تكون هذه المعلومات الثنائية جزء من بيان المورد. بعيداً عن هذه المعلومات الثنائية، الملف .resx ملف قابل تماماً للقراءة و الصيانة.
ملاحظة |
---|
لا تستخدم ملفات الموارد لتخزين كلمات المرور أو معلومات الأمان الهامة أو البيانات الخاصة. |
يحتوي ملف .resx على مجموعة قياسية من معلومات العنوان، التي تصف تنسيق إدخالات المورد و تحدد معلومات تعيين الإصدار لـ XML المستخدم في تحليل البيانات. يظهر المثال التالي الشكل المحتمل لمجموعة نموذجية من عبارات العنوان في ملف .resx.
<?xml version="1.0" encoding="utf-8"?>
<root>
<xsd:schema id="root" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0"
msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
بعد معلومات العنوان، يتم وصف كل إدخال كزوج: اسم/قيمة، مشابه جداً لطريقة تحديد السلاسل في ملف .txt. يلتف زوج الاسم/القيمة في التنسيق .resx في التعليمات البرمجية XML الذي يصف قيم السلسلة أو الكائن. عند إضافة سلسلة إلى ملف .resx ، يتم تضمين اسم السلسلة في علامة <data> و إحاطة القيمة في علامة <value> ، كما في المثال التالي.
<data name="string1">
<value>hello</value>
</data>
عند إدراج كائن في ملف .resx ،يتم استخدام نفس العلامات <data> و <value> لوصف الإدخال و لكن تتضمن العلامة <data> محدد نوع أو محدد نوع MIME. يحتوي محدد النوع على نوع الكائن الذي يتم حفظه. محدد النوع MIME يحتفظ بالنوع الأساسي (Base64) للمعلومات الثنائية المخزنة إذا كان الكائن يتكون من بيانات ثنائية.
ملاحظة |
---|
كافة ملفات .resx تستخدم منسق إنشاء تسلسل ثنائي لإنشاء و تحليل البيانات الثنائية لنوع محدد.و لذلك، يمكن أن يصير الملف .resx غير صالح إذا تغير تنسيق إنشاء السلسلة الثنائي لكائن بطريقة غير متوافقة. |
يظهر المثال التالي كائن Int32 محفوظ في ملف .resx و بداية كائن صورة نقطية و التي تتضمن معلومات ثنائية من ملف .gif فعلي.
<data name="i1" type="System.Int32, mscorlib">
<value>20</value>
</data>
<data name="flag" type="System.Drawing.Bitmap, System.Drawing,
Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAADtTeX…
</value>
</data>
باستخدام فئة ResXResourceWriter
يمكنك استخدام فئة: ResXResourceWriter لإنشاء ملف .resx مباشرة من التعليمات البرمجية. يوضح المثال التالي كيفية إنشاء ملف .resx يقوم بتخزين ملف .jpg كأحد الموارد داخل الملف. أولاً، قم بإنشاء الصورة باستخدام Image.FromFile method . بعد ذلك، قم بإنشاء ResXResourceWriter باسم ملف لا نظير له. قم باستدعاء أسلوب ResXResourceWriter.AddResource لكل صورة تريد إضافتها للملف. وأخيراً، قم باستدعاء أسلوب ResXResourceWriter.Close لكتابة معلومات الصورة لملف المورد و إغلاق ResXResourceWriter.
Imports System
Imports System.Drawing
Imports System.Resources
Public Class SampleClass
Public Sub Main()
Dim img As Image
Dim rsxw As ResXResourceWriter
img = Image.FromFile("en-AU.jpg")
rsxw = new ResXResourceWriter("en-AU.resx")
rsxw.AddResource("en-AU.jpg",img)
rsxw.Close()
End Sub
End Class
using System;
using System.Drawing;
using System.Resources;
public class SampleClass
{
public static void Main()
{
Image img = Image.FromFile("en-AU.jpg");
ResXResourceWriter rsxw = new ResXResourceWriter("en-AU.resx");
rsxw.AddResource("en-AU.jpg",img);
rsxw.Close();
}
}
يمكنك أيضاً معالجة ملف .resx مباشرة. ومع ذلك، لتجنب إتلاف الملف، احرص على عدم تعديل أي معلومات ثنائية مخزنة في الملف.
إذا كنت تحتاج إلى استرداد أسماء و قيم الموارد في ملف .resx ، استخدم ResXResourceReader. للحصول على مثال تعليمات برمجية يوضح كيفية إنشاء ResXResourceReader لملف محدد، و التكرار خلال الملف، و طباعة أسماء و قيم الموارد, راجع فئة: ResXResourceReader.
لا يمكنك تضمين ملف .resx في وقت تشغيل تنفيذي أو تحويله برمجياً إلى تجميع تابع. يجب عليك تحويل ملف .resx الخاص بك إلى ملف .resources باستخدام منشئ ملف الموارد (Resgen.exe). لمزيد من المعلومات، راجع الموارد في تنسيق الملف .Resources .