質問

を持っています 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