リフレクションを使用して .NET オブジェクトを検査し、それらをログにダンプしています。
問題が発生しました - プロパティが配列型の場合はどうなりますか? そのプロパティの構造を取得しPropertyInfoます。プロパティが配列であることがわかり、その配列プロパティの値を取得することもできます。
if(propertyInfo.PropertyType.IsArray)
{
var value = propertyInfo.GetValue(myObject, null);
}
しかし今、私は立ち往生しています。Visual Studio デバッガーを見ると、int[3]VS は 3 つの整数の配列であることを認識していますが、これをこれらの 3 つの整数を表すコンマ区切りの文字列に変換するにはどうすればよいでしょうか?
私は次のようなことを試しました
string.Join(", ", value);
など-しかし、私は常にそれvalueが「動的」であるという事実に苦労しています。たとえば、 aint[]または adecimal[]または他の何かである可能性があります。奇妙な結果がstring.Join()返されます(間違いなく、私が探しているものではありません...)
この「何かの配列」を多くのif(...)andelse { .... }節なしでコンマ区切りの文字列に変換する賢い方法はありますか??
どういうわけか私は今ここで脳がフリーズしています - このフリーズを解凍するためのアイデアは大歓迎です!