3

リフレクションを使用してxmlファイルを読み込み、文字列をstring []に変換できないというエラーが発生し続けています(これはやりたくないです!)問題の原因は私だと思いますオブジェクトのタイプが配列であるかどうかを判断できません。以下は私が現在使用しているものです(正しく機能しません)が、私も使用しようとしましたが、これも機能しませんif(mi[i].GetType() == typeof(string[]))

MemberInfo[] mi = objType.GetProperties();
for (int i = 0; i < mi.Length; i++)
{
  if (mi[i].GetType().IsArray)
  {
  }
  else
  {
   //Code path is running through here
  }

ファイルが正しく読み込まれます。

objType編集:よりよく説明するために、構造を自分に追加したほうがいいと思いました。

objTypeこの場合は次のように呼ばれるstring[]変数を含むクラスです。mi[i]

4

1 に答える 1

7

プロパティの基になるタイプを取得するには、PropertyTypeではなくを使用する必要があります。GetType()MemberInfo

var mi = objType.GetProperties();
for (int i = 0; i < mi.Length; i++)
{
    var type = mi[i].PropertyType;
    //Check for string array
    if (type.IsArray && type.GetElementType() == typeof(string))
    {
    }
}

またはあなたはすることができます

if(type == typeof(string[]))
{
}
于 2012-12-11T10:33:38.380 に答える