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

نام تاپیک: اضافه کردن Add in به برنامه

  1. #1
    کاربر دائمی آواتار majid2230
    تاریخ عضویت
    آبان 1388
    محل زندگی
    می خوای بیای خونمون ؟
    پست
    185

    Red face اضافه کردن Add in به برنامه

    سلام
    من دارم یه برنامه می نویسم که لازم دارم در هنگام اجرا کنترل هایی رو از کاربر گرفته و روی فرم لود کنم ، این کنترل ها به صورت Dll هستند ، کسی پیشنهادی داره که چه جوری میشه این کار رو انجام داد ؟

    ---------------------------------------------------
    البته کنترل ها باید حتما چند تابع مشخص (دارای اسم ، ورودی و خروجی معین شده) داشته باشند

  2. #2
    کاربر دائمی آواتار mohammad272005
    تاریخ عضویت
    مرداد 1386
    محل زندگی
    تهران
    پست
    639

    نقل قول: اضافه کردن Add in به برنامه

    بهترین راه (و شاید تنها راه) Reflection باشه.
    این #C:
    private static IEnumerable<UserControl> GetControls(string dllName)
    {
    var asm = Assembly.LoadFile(dllName);

    foreach (var type in asm.GetTypes())
    {
    if (type.DeclaringType != typeof (UserControl))
    continue;
    var constructorInfo = type.GetConstructor(null);
    if (constructorInfo != null)
    yield return constructorInfo.Invoke(null) as UserControl;
    }
    }

    این Linq:
    private static IEnumerable<UserControl> GetControls(string dllName)
    {
    return from type in Assembly.LoadFile(dllName).GetTypes()
    where type.DeclaringType == typeof (UserControl)
    select type.GetConstructor(null)
    into constructorInfo where constructorInfo != null select constructorInfo.Invoke(null) as UserControl;
    }

  3. #3
    کاربر دائمی آواتار majid2230
    تاریخ عضویت
    آبان 1388
    محل زندگی
    می خوای بیای خونمون ؟
    پست
    185

    نقل قول: اضافه کردن Add in به برنامه

    متاسفانه من این کد رو استفاده کردم ولی هیچی بر نمی گردنه ، آیا کنترلی که ایمپورت میشه باید ویژگی خاصی داشته باشه
    این خط کد هم مقدارش Null هست
    type.DeclaringType


    ----------------------------- ویرایش
    این مشکل با عوض کردن کد گفته شده با
    type.BaseType.Name != "UserControl"

    حل شد ، حالا یه سوال دیگه ای که پیش می آد من چه جوری یه کنترل از این نوع بسازم ؟
    آخرین ویرایش به وسیله majid2230 : پنج شنبه 15 دی 1390 در 17:02 عصر

برچسب های این تاپیک

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

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