説明させてください。さまざまな ASP.NET コントロールを追加するリストがあります。次に、リストをループして CssClass を設定したいと考えていますが、すべての Control がプロパティ CssClass をサポートしているわけではありません。
私がやりたいのは、基になるインスタンス タイプが CssClass プロパティをサポートして設定しているかどうかをテストすることですが、各 Control オブジェクトのタイプがわからないため、プロパティを設定する前に変換を行う方法がわかりません。
typeof または x.GetType() を使用できることはわかっていますが、これらを使用してコントロールをインスタンス型に変換し、プロパティをテストしてから設定する方法がわかりません。
実際に私はこれを解決したようですので、他の人のためにここにコードを投稿しようと思いました。
foreach (Control c in controlList) {
PropertyInfo pi = c.GetType().GetProperty("CssClass");
if (pi != null) pi.SetValue(c, "desired_css_class", null);
}
この 2 行のコードを調査するのに何時間も費やしたので、これが誰かの役に立てば幸いです。
乾杯
スティーブ