كيفية الحصول على معلومات النوع دون استخدام الأجداد؟

StackOverflow https://stackoverflow.com/questions/2450532

  •  20-09-2019
  •  | 
  •  

سؤال

انا لدي object obj التي تم تمريرها إلى طريقة مساعد.

public static MyTagGenerateTag<T>(this HtmlHelper htmlHelper, T obj /*, ... */)
{
    Type t = typeof(T);

    foreach (PropertyInfo prop in t.GetProperties())
    {
        object propValue = prop.GetValue(obj, null);
        string stringValue = propValue.ToString();
        dictionary.Add(prop.Name, stringValue);
    }

    // implement GenerateTag
}

لقد قيل لي هذا ليس استخداما صحيحا للأردائر. هل يمكن لأي شخص أن يخبرني إذا استطعت تحقيق نفس النتيجة دون تحديد نوع عام؟ إذا كان الأمر كذلك، كيف؟

ربما أغير التوقيع حتى يكون الأمر كذلك:

public static MyTag GenerateTag(this HtmlHelper htmlHelper, object obj /*, ... */)
{
    Type t = typeof(obj);
    // implement GenerateTag
}

لكن Type t = typeof(obj); مستحيل.

أي اقتراحات؟

شكرًا

ديف

هل كانت مفيدة؟

المحلول

Type t = obj.GetType();

على الرغم من أنني لا أعتقد أن هناك أي مشكلة مع ما لديك في الوقت الحالي.

نصائح أخرى

ماذا عن مجرد القيام:

Type t = obj.GetType();

يجب أن تعطيك typeinfo.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top