نمایش نتایج 1 تا 8 از 8

نام تاپیک: کار با Dll بعد از اجرای برنامه

  1. #1
    کاربر تازه وارد آواتار barnamenevisjma
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    بجنورد
    پست
    93

    کار با Dll بعد از اجرای برنامه

    سلام
    برنامه ای دارم که در اون کاربر یه dll رو انتخاب میکنه. حالا من چطور میتونم معتبر بودن dll انتخاب شده رو چک کنم؟؟؟ (این Dll باید کلاسی داشته باشد به نام A که این کلاس باید یا مشتقی از کلاس X باشد و یا مثلا اینترفیس XX رو پیاده سازی کرده باشد )
    آیا این کار نیاز به اطلاعات خاصی هم دارد؟ مثلا اسم کلاس، لازمه یا نیازی نیست؟

    با تشکر.

  2. #2
    کاربر دائمی آواتار abbas.oveissi
    تاریخ عضویت
    دی 1389
    محل زندگی
    تهران
    پست
    578

    نقل قول: کار با Dll بعد از اجرای برنامه

    نقل قول نوشته شده توسط barnamenevisjma مشاهده تاپیک
    کسی جواب نمیده ؟؟؟؟؟ کمک!!!
    منظورت از معتبر بودن DLL چیه ؟؟؟ یعنی میخوای چک کنی ببینی کلاس خاصی توی DLL وجود داره یا نه؟؟؟

  3. #3
    کاربر تازه وارد آواتار barnamenevisjma
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    بجنورد
    پست
    93

    نقل قول: کار با Dll بعد از اجرای برنامه

    دقیقا. میخوام ببینم ایا کلاسی داره که مثلا از کلاس X مشتق شده باشه یا نه؟

  4. #4
    کاربر دائمی آواتار abbas.oveissi
    تاریخ عضویت
    دی 1389
    محل زندگی
    تهران
    پست
    578

    نقل قول: کار با Dll بعد از اجرای برنامه

    برای فهمیدن اینکه کلاس از چه کلاسی مشتق شده از مثال زیر استفاده کن . مثلا ما کلاس های زیر رو داریم :

    class oveissi
    {

    }

    class abbas : oveissi
    {

    }


    برای پیدا کردن کلاس پایه باید از کد زیر استفاده کنی :

    abbas a = new abbas();
    MessageBox.Show(a.GetType().BaseType.ToString());


    خروجی این مثال که در messagebox نمایش داده میشه کلاس پایه "oveissi" هست .

    پ.ن 1 : من فقط با ساختن شیء تونستم بفهمم کلاس پایه چیه
    پ.ن 2 : یکم روی این ;using System.Reflection تحقیق کن.

  5. #5

    نقل قول: کار با Dll بعد از اجرای برنامه

    نقل قول نوشته شده توسط barnamenevisjma مشاهده تاپیک
    سلام برنامه ای دارم که در اون کاربر یه dll رو انتخاب میکنه. حالا من چطور میتونم معتبر بودن dll انتخاب شده رو چک کنم؟؟؟ (این Dll باید کلاسی داشته باشد به نام A که این کلاس باید یا مشتقی از کلاس X باشد و یا مثلا اینترفیس XX رو پیاده سازی کرده باشد ) آیا این کار نیاز به اطلاعات خاصی هم دارد؟ مثلا اسم کلاس، لازمه یا نیازی نیست؟ با تشکر.
    سلام.
    اگر درست متوجه شده باشم، هدف از اینکار نوشتن Plugin هستش. برای اینکار، شما باید کاربر رو به Implement کردن Interface خاصی در Assembly اش ترغیب کنید، بعد نگران این باشید که آیا Assembly تعیین شده توسط کاربر برای Load شدن مناسبه یا خیر. خوندن این مقاله بهتون یکی از روشهای ایجاد یک Pluggable Architecture بر اساس .NET رو نشون میده. در هر حال، اگر Public Key اون Assembly رو داشته باشید (و Version اش رو)، می تونید به این روش اونو بگیرید و با Public Key (و Version) مورد نظر مقایسه کنید (اگر چه، قبل از اینکه کد منو بخونید، لطفا مقاله مزبور رو به دقت مطالعه کنید).

    AssemblyName assemblyName = AssemblyName.GetAssemblyName("d:\\whatever\\myasse  mbly.dll");
    byte[] key = assemblyName.GetPublicKey();
    Version version = assemblyName.Version;


    موفق باشید.

    پاورقی:

    نقل قول نوشته شده توسط barnamenevisjma مشاهده تاپیک
    دقیقا. میخوام ببینم ایا کلاسی داره که مثلا از کلاس X مشتق شده باشه یا نه؟
    اونوقت از کجا معلوم که این اون X همون X ای باشه که مد نظر شماست؟ حتی فرض کنیم که Namespace اش هم یکی باشه، بازهم تضمینی وجود نداره که اون X همون X مورد نظر شما باشه.

  6. #6
    کاربر تازه وارد آواتار barnamenevisjma
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    بجنورد
    پست
    93

    نقل قول: کار با Dll بعد از اجرای برنامه

    سلام



    اونوقت از کجا معلوم که این اون X همون X ای باشه که مد نظر شماست؟ حتی فرض کنیم که Namespace اش هم یکی باشه، بازهم تضمینی وجود نداره که اون X همون X مورد نظر شما باشه
    برای رفع این مشکل، تو همون مقاله یه راه حل پیشنهاد شده. حالا فرض کنیم DLL مناسبه. چطوری با متدها- سازنده و .. این Dll کار کنم.(فراخوانی- مقدار دادن یا گرفتن مقدارو خلاصه از اینجور کارا) راستش خیلی توی نت گشتم ولی متاسفانه مطلبی که مشکل من رو حل کنه، پیدا نکردم. تو همین سایت هم گشتم. ولی چیزی که میخوام رو پیدا نکردم.

    با Reflector ها هم کار نکردم و کتاب شسته-رفته ای هم براش ندارم. لطفا به دادم برسید. یا لااقل یه کتاب درست حسابی معرفی کنید. (که کار با متد های تعریف شده در یه Dll رو توضیح داده باشه(Runtime). نه اینکه کلی از Reflectorها تعریف کنه و آخر سر هم بگه حالا برید خودتون بخونین!)
    راستی یه سوال جا موند: آیا روش فراخوانی سازنده(ها) با فراخوانی سایر متدها یکسان است یا نه؟توضیح میدین؟

    شدیدا به کمکتون نیاز دارم...
    با تشکر.

  7. #7
    کاربر تازه وارد آواتار barnamenevisjma
    تاریخ عضویت
    شهریور 1388
    محل زندگی
    بجنورد
    پست
    93

    نقل قول: کار با Dll بعد از اجرای برنامه

    راستی میشه در مورد GetModule و GetMethod و .. توضیح بدین؟
    ممنون.

  8. #8

    نقل قول: کار با Dll بعد از اجرای برنامه

    نقل قول نوشته شده توسط barnamenevisjma مشاهده تاپیک
    [RIGHT]چطوری با متدها- سازنده و .. این Dll کار کنم.(فراخوانی- مقدار دادن یا گرفتن مقدارو خلاصه از اینجور کارا) راستش خیلی توی نت گشتم ولی متاسفانه مطلبی که مشکل من رو حل کنه، پیدا نکردم. تو همین سایت هم گشتم. ولی چیزی که میخوام رو پیدا نکردم.
    سلام.
    من قبلا در این مورد در چند تاپیک دیگه صحبت کرده بودم. یکی از اونها این تاپیک هستش.
    لطفا پست های اون تاپیک رو بدقت بخونید، اگر بازهم سوالی بود مطرح کنید تا پاسخ بدم.

    موفق باشید.

    پاورقی: اگر از .NET 4.0 استفاده می کنید، میتونید از dynamic و DLR برای اینکار استفاده کنید که کدهای Boilerplate رو از بین میبره. در هر حال، لطفا تاپیک قبلی رو مطالعه کنید، سوالی بود بفرمایید تا پاسخ بدم.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •