0
暗黙の演算子と別のタイプ(Image
)を実装する特定のタイプのオブジェクト(SpecialImage
)があります。オブジェクトが暗黙の演算子を実装している場合、PropertyInfo.PropertyTypeへのキャストをテストできますか?
SpecialImage
は、Image
から派生しています。ただし、以下は、オペレータによって可能です:
var someImage = new Image();
(SpecialImage)someImage;
私は反射とImage
オブジェクトによってを通してループしていますプロパティを持つオブジェクトを持っている:
は、そのオブジェクトがキャスト可能であるかどうかを確認することが可能です値を設定しようとする前にinfo.PropertyType
に?
var someImage = new Image();
foreach(PropertyInfo info in someOjbect.GetType().GetProperties()) {
//info.PropertyType == typeof(SomeImage);
//Is it possible to check if the object is castable to
//info.PropertyType before trying to set the value?
info.SetValue(someObject, someImage, null);
}
を使用することができます。 __without__クラスを変更する必要があり、例えばIConvertibleを変換するためのより良い方法はありませんか? – Ropstah
私が知っているわけではありません。あなたはそれを整理するヘルパーメソッドでそのコードをラップすることができます。 http://stackoverflow.com/questions/2075471/implicit-version-of-isassignablefromおよびhttp://stackoverflow.com/questions/2224266/how-to-tell-if-type-a-is-implicitly-convertibleを参照してください。詳細は、-to-type-bを参照してください。 – Phil