제네릭을 사용하지 않고 유형 정보를 얻는 방법은 무엇입니까?

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