リフレクションを使用してすべてのオブジェクトプロパティ(プライベートを含む)を返す

user2937874

私はここでstackoverflowやMSドキュメントを含む他のサイトでこれを調べ、出くわしたすべての可能な答えを試しましたが、役に立ちませんでした。わからない、私が間違っていること。プライベートを含むすべてのプロパティを取得しようとする単純なクラス。

ソリューションは、vs2017 15.5.7、c#2017、netFramework4.7.02のコンソールアプリです。

すべてのバインディングフラグの組み合わせを試しました:

 (BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Static)
 (BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static |
 BindingFlags.Instance | BindingFlags.DeclaredOnly)

コードを含む:

var listnew = new List<Test>
{
    new Test {Name = "Test"}
};

foreach (var item in listnew)
{
    var test = item.GetType().GetProperties(BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.Static);

    foreach (var prop in test)
    {
        System.Console.WriteLine(prop);
        System.Console.WriteLine(prop.GetValue(item));
    }
}

クラスは次のとおりです。

public class Test
{
    private string _name;

    public string Name
    { 
        get => _name;
        set => _name = value;
    }
}
ティムシュメルター

私はあなたがプロパティたいと思いますし、フィールドには、GetPropertiesプライベートバッキングフィールドを返しません_nameが、GetFieldsありません。フィールドとプロパティを連結することができます。どちらもMemberInfo次のとおりです。

Type t = typeof(Test);
BindingFlags bindingFlags = BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;

MemberInfo[] allMembers = t.GetProperties(bindingFlags).Cast<MemberInfo>()
    .Concat(t.GetFields(bindingFlags))
    .ToArray();

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

リフレクションを使用して、クラス内のすべての静的プロパティをオブジェクトとして取得VB.NET

分類Dev

インスタンスプロパティを除くリフレクションを使用してオブジェクトプロパティを取得する

分類Dev

リフレクションを使用してオブジェクトプロパティを設定する

分類Dev

リフレクションを使用してオブジェクトのプロパティのインスタンスを動的に取得する方法

分類Dev

ジェネリック型オブジェクトのリフレクションを使用してプロパティを取得する

分類Dev

Scalaリフレクションを使用してオブジェクトからプリミティブフィールドのタイプを取得する

分類Dev

参照メンバーのプロパティを含むオブジェクトからすべてのプロパティを取得します

分類Dev

ネストされたコレクション内のオブジェクトプロパティを、C#ドライバーを使用してMongoDB内のこのオブジェクトの別のプロパティで更新する

分類Dev

VBAのオブジェクトのプロパティとしてコレクションを使用する

分類Dev

Javascript-オプションの配列をループし、オブジェクトのプロパティ値がオプション配列のすべての値と一致したときにオブジェクトを返しますか?

分類Dev

プロパティ名としてダッシュを含むオブジェクトのタイプスクリプトインターフェイスを定義します

分類Dev

LINQを使用してオブジェクトのプロパティを入力し、コレクションを返す方法

分類Dev

リフレクションを使用してオブジェクトのすべてのプロパティを取得します-ただし、オブジェクトに値があるプロパティのみ(デフォルト値またはnullではありません)

分類Dev

リフレクションを使用してタイプパラメータのオブジェクトをインスタンス化する

分類Dev

アルファベットと数字を含む名前プロパティを使用してオブジェクトの配列を並べ替える

分類Dev

リフレクションを使用して、クラスのインスタンスの汎用リストプロパティにオブジェクトを追加する方法

分類Dev

リフレクションを使用してネストされたオブジェクトにプロパティを設定する

分類Dev

フィルターを使用してオブジェクトのプロパティ値を返す

分類Dev

LaravelリレーションbelongsToエラー非オブジェクトのプロパティ 'name'を取得しようとしています

分類Dev

Laravelリレーションエラー-非オブジェクトのプロパティを取得しようとしています

分類Dev

インターフェイス型の配列プロパティを使用してオブジェクトをシリアル化する方法は?

分類Dev

プロパティとしてSpringBeanを使用したガベージコレクションクリーンオブジェクト

分類Dev

ストリームを使用してJavaでオブジェクトのコレクションをマップおよびフィルタリングするためのベストプラクティス

分類Dev

リフレクションを使用して動的オブジェクトにプロパティを作成する方法

分類Dev

ジャクソンはすべてのオブジェクトのプロパティとしてクラス名をシリアル化します

分類Dev

コレクション内のすべてのオブジェクトのプロパティに対して.Max()を実行し、最大値のオブジェクトを返す方法

分類Dev

参照を返すメソッドを介してプライベートオブジェクトのプロパティを変更する

分類Dev

すべてのフォームフィールドをクラスプロパティとして定義せずに、JSPフォームからStruts2のアクションクラスにオブジェクトを渡す方法は?

分類Dev

プロキシサーバーを介してすべてのWebトラフィック(httpsを含む)をリダイレクトします

Related 関連記事

  1. 1

    リフレクションを使用して、クラス内のすべての静的プロパティをオブジェクトとして取得VB.NET

  2. 2

    インスタンスプロパティを除くリフレクションを使用してオブジェクトプロパティを取得する

  3. 3

    リフレクションを使用してオブジェクトプロパティを設定する

  4. 4

    リフレクションを使用してオブジェクトのプロパティのインスタンスを動的に取得する方法

  5. 5

    ジェネリック型オブジェクトのリフレクションを使用してプロパティを取得する

  6. 6

    Scalaリフレクションを使用してオブジェクトからプリミティブフィールドのタイプを取得する

  7. 7

    参照メンバーのプロパティを含むオブジェクトからすべてのプロパティを取得します

  8. 8

    ネストされたコレクション内のオブジェクトプロパティを、C#ドライバーを使用してMongoDB内のこのオブジェクトの別のプロパティで更新する

  9. 9

    VBAのオブジェクトのプロパティとしてコレクションを使用する

  10. 10

    Javascript-オプションの配列をループし、オブジェクトのプロパティ値がオプション配列のすべての値と一致したときにオブジェクトを返しますか?

  11. 11

    プロパティ名としてダッシュを含むオブジェクトのタイプスクリプトインターフェイスを定義します

  12. 12

    LINQを使用してオブジェクトのプロパティを入力し、コレクションを返す方法

  13. 13

    リフレクションを使用してオブジェクトのすべてのプロパティを取得します-ただし、オブジェクトに値があるプロパティのみ(デフォルト値またはnullではありません)

  14. 14

    リフレクションを使用してタイプパラメータのオブジェクトをインスタンス化する

  15. 15

    アルファベットと数字を含む名前プロパティを使用してオブジェクトの配列を並べ替える

  16. 16

    リフレクションを使用して、クラスのインスタンスの汎用リストプロパティにオブジェクトを追加する方法

  17. 17

    リフレクションを使用してネストされたオブジェクトにプロパティを設定する

  18. 18

    フィルターを使用してオブジェクトのプロパティ値を返す

  19. 19

    LaravelリレーションbelongsToエラー非オブジェクトのプロパティ 'name'を取得しようとしています

  20. 20

    Laravelリレーションエラー-非オブジェクトのプロパティを取得しようとしています

  21. 21

    インターフェイス型の配列プロパティを使用してオブジェクトをシリアル化する方法は?

  22. 22

    プロパティとしてSpringBeanを使用したガベージコレクションクリーンオブジェクト

  23. 23

    ストリームを使用してJavaでオブジェクトのコレクションをマップおよびフィルタリングするためのベストプラクティス

  24. 24

    リフレクションを使用して動的オブジェクトにプロパティを作成する方法

  25. 25

    ジャクソンはすべてのオブジェクトのプロパティとしてクラス名をシリアル化します

  26. 26

    コレクション内のすべてのオブジェクトのプロパティに対して.Max()を実行し、最大値のオブジェクトを返す方法

  27. 27

    参照を返すメソッドを介してプライベートオブジェクトのプロパティを変更する

  28. 28

    すべてのフォームフィールドをクラスプロパティとして定義せずに、JSPフォームからStruts2のアクションクラスにオブジェクトを渡す方法は?

  29. 29

    プロキシサーバーを介してすべてのWebトラフィック(httpsを含む)をリダイレクトします

ホットタグ

アーカイブ