ジェネリックを使用せずにタイプ情報を取得する方法は?
質問
を持っています 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を与えるはずです。
所属していません StackOverflow