1

これはいくつかのクラスです

public class ClassA
{
    public string Name    { get; set; }
    public string Color   { get; set; }
    public ClassB ClassB_ { get; set; }


    public class ClassB
    {
        public string Name { get; set; }
        public float  Age  { get; set; }
    }
}

今、私は ClassA のすべてのパブリック プロパティをコンソールに出力したいので、これを使用します

( obj は、メソッドが取得してすべてのプロパティを出力するパラメータです)

 var allProp = obj.GetType().GetProperties();

しかし、私のアプリケーションが ClassA の ClassB オブジェクトを認識した場合 - ClassB のすべてのプロパティも出力したいのですが、実行時に ClassB がクラスであってプリミティブ オブジェクトではないことをどのように知ることができるのか、実行時にどのように知ることができるのかわかりません。すべての ClassB プロパティを出力しますか?

4

1 に答える 1

2

このコードを試してください:

Type type = Type.GetType("ClassA+ClassB");
var allProp = type.GetProperties();

タイプの動的な名前が必要な場合は、次のコードを使用してみてください。

string fullname = typeof(ClassA.ClassB).FullName;
于 2012-05-19T15:19:33.873 に答える