1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

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

شروع موضوع توسط minaaa ‏19/11/11 در انجمن Assembly

  1. کاربر پیشرفته

    تاریخ عضویت:
    ‏9/12/10
    ارسال ها:
    19,773
    تشکر شده:
    6,457
    امتیاز دستاورد:
    113
    [​IMG] .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 Sub