Как получить информацию типа без использования дженериков?

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();

Это должно дать вам типинфо.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top