۱۰.۲۳.۱۳۸۸

بررسی نحوه ذخیره سازی Resource ها در اسمبلی های .NET


.net Assembly توانائی ذخیره سازی منابع اضافه شده به برنامه ها ، از قبیل اطلاعات متنی و تصاویر مورد نیاز برنامه را دارد .

در حالت عادی ما به تصاویر یا متن های مورد نیازمان از طریق فایل های روی هارد دیسک دسترسی داریم ، اما گاهی اوقات نیاز دارید که برنامه از منابع خارجی که درون خودش ذخیره کرده استفاده کند. در این صورت شما هنگام توزیع برنامه دیگر نگرانی درباره مسیر فایل های مورد نیاز آن که هنگام نصب برنامه از کاربر درخواست می شود را ندارید.

حال طریقه استفاده از .net Assembly را شرح می دهیم:

ابتدا مراحل بررسی نحوه ذخیره سازی Resource ها در اسمبلی های .NET


.net Assembly توانائی ذخیره سازی منابع اضافه شده به برنامه ها ، از قبیل اطلاعات متنی و تصاویر مورد نیاز برنامه را دارد .

در حالت عادی ما به تصاویر یا متن های مورد نیازمان از طریق فایل های روی هارد دیسک دسترسی داریم ، اما گاهی اوقات نیاز دارید که برنامه از منابع خارجی که درون خودش ذخیره کرده استفاده کند. در این صورت شما هنگام توزیع برنامه دیگر نگرانی درباره مسیر فایل های مورد نیاز آن که هنگام نصب برنامه از کاربر درخواست می شود را ندارید.

حال طریقه استفاده از .net Assembly را شرح می دهیم:

ابتدا مراحل زیر را صورت دهید.
۱- یک پروژه جدید ایجاد کنید.
۲- در Solution Explorer بر روی نام پروژه کلیک راست کرده و سپس روی گزینه Add Existing Item کلیک کنید.
۳- در پنجره Open نوع فایل را به All Files تغییر دهید.
۴- پس از انتخاب فایل ها روی آنها کلیک راست کرده و Properties را انتخاب کنید.
همانطور که می بینید مقدار اولیه خصوصیت Build Action مربوط به فایل ، Content میباشد که باید به Embedded Resource تغییر کند.

حال فایل های انتخابی شما بخشی از .Net Assembly هستند.

فراخوانی و نحوه استفاده از فایل های اضافه شده :
فرض می کنیم که شما یک تصویر با نام ۱/bmp و یک فایل متنی با نام Test.txt را به برنامه وارد کرده اید.ما این دو فایل را در رویداد Form_Load فراخوانی و نمایش می دهیم.

ابتدا System.IO را در برنامه Import کنید:

Imports System.IO

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘Assembly تعریف متغیری از نوع
Dim asm As System.Reflection.Assembly = _
Me.GetType.Assembly.GetEntryAssembly

Dim my_namespace As String = _
asm.GetName().Name.ToString
‘String به متغیری از نوع Assemblyنسبت دادن نام

Dim pic_stream As Stream
Dim bt As Bitmap

pic_stream = _
asm.GetManifestResourceStream(my_namespace + “.1.bmp”)

If Not pic_stream Is Nothing Then
bt = New Bitmap(pic_stream)

Dim pbox As New PictureBox()
‘به آن Image و نسبت دادن PictureBox ساخت
With pbox
.Image = bt
.Left = 600
.Top = 200
.Width = 200
.Height = 200
.Visible = True
End With

Me.Controls.Add(pbox)
pic_stream.Close()
End If

Dim text_stream As Stream = _
asm.GetManifestResourceStream(my_namespace _
+ “.test.txt”)

If Not (text_stream Is Nothing) Then
Dim stream_reader As New StreamReader(text_stream)

Dim lbl As New Label()
‘در آن Test.txt و قرار دادن محتویات فایل Lable ساخت یک
With lbl
.Text = stream_reader.ReadToEnd()
.Top = 75
.Left = 5
.Width = 500
.Height = 500
.Visible = True
End With

Me.Controls.Add(lbl)
stream_reader.Close()
End If
End ಸಬ್

هیچ نظری موجود نیست:

http://up.iranblog.com/images/0z5dgraxwa4j49a5ts77.gif http://up.iranblog.com/images/gv83ah5giec9g8jkopmc.gif