مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

mahdy.r

عضویت از 1395/07/05

گرفتن type یک مدل از object

  • دوشنبه 9 مهر 1397
  • 11:14
تشکر میکنم
سلام خسته نباشید خدمت استاد عزیز..... یک سوال من یک کلاس با پراپرتی های مخصوص خودش دارم.... مدلی از این کلاس ساختم و به ورودی یک متد. که از نوع object تعریف شده پاس دادم....object گرفتم که بتونم. بهش مدل های دیگه هم پاس بدم....با چه دستوری میتونم درون متدی که object داره و دارم مدل ام رو بهش پاس میدم بتونم type روش برگردونم. که initilizesh کنم و. پارامتر هاشو پر کنم....نگید که با دستور gettype. میشه که امتحان کردم و فقط اسم مدل رو میده به عنوان type قبول نمیکنه

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

salman_b

عضویت از 1396/02/18

  • دوشنبه 9 مهر 1397
  • 11:23

سلام

مثال زیر میتونه کمکتون کنه.

بهش میگن Reflection در سی شارپ

            Type objType = obj.GetType();
            object newObj = Activator.CreateInstance(objType);
            var properties = newObj.GetType().GetProperties();
            foreach(var property in properties)
            {
                property.SetValue(newObj, "YourValue");
            }
کاربر سایت

mahdy.r

عضویت از 1395/07/05

  • دوشنبه 9 مهر 1397
  • 11:57
به من خطا میده...no parameterless constructor defined for this objectدر قسمت . Create instance .... من کانستراکتوری تعریف نکردم که این نخونه...بعید میدنم get type jab bedeh
کاربر سایت

salman_b

عضویت از 1396/02/18

  • دوشنبه 9 مهر 1397
  • 12:54

خب عزیز من داره میگه سازنده ای که پارامتر ورودی نداشته باشه واسه این آبجکت وجود نداره و نمیتونم بسازم.

اگه تمام سازنده های اون آبجکت ورودی میگیرن باید اون ورودی ها رو به CreateInstance پاس بدی تا بتونه بسازه.

Activator.CreateInstance(typeof(T), param1, param2);

کاربر سایت

سهیل علیزاده

عضویت از 1396/04/09

  • دوشنبه 9 مهر 1397
  • 12:58

از این طریق میتونید به Property های یک  object دسترسی پیدا کنید.

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)