ジェネリック型を知らなくても、ジェネリッククラス(シングルトン)の静的フィールドの値を取得する方法

コンラッド

わかりました、私は私の質問をもう少しよく説明しようとします:私は

class DynamicTypeCreator{...}

そしてその中のメソッド:

static BuildASingletonClassWithTypeBuiler<T> (T object) {...}

このメソッドは、シングルトンタイプを作成するだけではありません

class Singleton01<K> {...}

だけでなく、それをインスタンス化し、フィールドを定義します

static Singleton01<K> instance = new Singleton01<K> (K object)

と別のフィールド

static Type typeOfGenericParameter = typeof(K)

https://github.com/TThaan/ExtensionPropertiesForCSharpの実際のコードは異なりますが、それは問題ではありません。)
ただし、このメソッドはシングルトンタイプもインスタンスも返しません。それらを作成しているだけです。
実際、タイプの名前をSingleton01からSingleton02、Singleton03などに変更するだけで、毎回異なるT objectパラメーターを使用することがよくあります。
したがって、後でこれらのシングルトンの1つにアクセスしたい場合、それがどのオブジェクトを保持し、どのタイプであるかがわかりません。たとえば「Singleton03」の静的フィールドの値を取得するには、最初に使用します

Type type = AssemblyBuilder.GetType("Singleton03")

静的フィールドの値を取得しようとしても、まだ機能せず、nullになっています。使わざるを得ないようです

Type genericType = type.MakeGenericType(new[] { typeof(T) })

しかし、これが機能するためには、パラメータのタイプをすでに知っている必要がありますT object
を使用する前に、そのようなジェネリック型の静的フィールドの値を取得する方法があるかどうかを知りたいです.MakeGeneric()

コンラッド

私は今答えを見つけました。
あるタイプのジェネリッククラスは実際には別のタイプの「同じクラス」と
は異なるクラスであるため、これらのクラスの1つの静的フィールドは他のクラスの静的フィールドとは異なります。したがって.MakeGeneric()、フィッティングタイプで使用する前に、これらのフィールドの1つの値を取得することはできません
解決策は、クラスの作成を変更することです。たとえば、次のようになります。ジェネリッククラスと静的フィールド

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

プロパティ名とタイプを知らなくても、Blazorコンポーネントのジェネリックリストパラメータをフィルタリングする方法

分類Dev

リフレクションを使用してフィールドのジェネリック型を取得する

分類Dev

ジェネリック型のkotlinのリフレクションを使用して静的フィールドの値を取得します

分類Dev

ジェネリッククラスのネストされた列挙型からリフレクションを介して列挙値を取得する

分類Dev

ジェネリッククラスのネストされた列挙型からリフレクションを介して列挙値を取得する

分類Dev

ジェネリッククラスのネストされた列挙型からリフレクションを介して列挙値を取得する

分類Dev

テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

分類Dev

フィールドのジェネリックパラメータのクラスを取得する方法

分類Dev

Java:ジェネリック型オブジェクトインスタンスから列挙型クラスの値を取得する方法は?

分類Dev

Javaジェネリック:ジェネリックインターフェイスでジェネリッククラスのIDを取得する方法は?

分類Dev

Javaのジェネリッククラスのジェネリック型メンバーを比較する方法

分類Dev

このクラスが非ジェネリックな方法で使用されている場合、Javaジェネリッククラスはすべてのフィールドのジェネリック情報を見逃しますか?

分類Dev

JAVA:リフレクションでジェネリック型のコンストラクタを取得するかどうかわからない

分類Dev

リフレクションを使用してC#のネストされた型のDeclaringTypeからジェネリック型を取得する

分類Dev

ジェネリックスパラメーターと戻り値型メソッドを持つJavaでリフレクションを使用してクラスのインスタンスを取得する方法

分類Dev

例外なくオブジェクトディクショナリからジェネリック型の値を取得する

分類Dev

Swiftでジェネリッククラスのシングルトンを作成する方法

分類Dev

ジェネリックを介してシングルトンオブジェクトから値を取得する方法

分類Dev

リフレクションを使用してジェネリック戻り値の型でジェネリックメソッドを呼び出す方法

分類Dev

C#でジェネリック型のプライベート静的フィールドを処理する良い方法はありますか?

分類Dev

ジェネリック型のアクセス静的フィールド

分類Dev

Javaリフレクション:メソッドのジェネリック型のクラスを取得する方法?

分類Dev

Scalaのジェネリック型からフィールド名とフィールド型を取得する方法は?

分類Dev

ジェネリックインターフェイスと演算子のオーバーロード-ジェネリックインターフェイスブロックからのプロシージャをモジュール内でプライベートに設定する方法は?

分類Dev

ネストされたジェネリックのジェネリック型をクラストークンで保持する方法

分類Dev

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

分類Dev

Djangoのジェネリックビュー:外部クラス属性に基づいてget_querysetをフィルタリングする方法は?

分類Dev

ジェネリックメソッドを非ジェネリックメソッドでオーバーライドするときに、サブシグネチャとチェックされていないルールが戻り値の型に対してこのように機能するのはなぜですか?

分類Dev

ジェネリッククラスのコンストラクターのオプションフィールドのデフォルト値

Related 関連記事

  1. 1

    プロパティ名とタイプを知らなくても、Blazorコンポーネントのジェネリックリストパラメータをフィルタリングする方法

  2. 2

    リフレクションを使用してフィールドのジェネリック型を取得する

  3. 3

    ジェネリック型のkotlinのリフレクションを使用して静的フィールドの値を取得します

  4. 4

    ジェネリッククラスのネストされた列挙型からリフレクションを介して列挙値を取得する

  5. 5

    ジェネリッククラスのネストされた列挙型からリフレクションを介して列挙値を取得する

  6. 6

    ジェネリッククラスのネストされた列挙型からリフレクションを介して列挙値を取得する

  7. 7

    テンプレートが静的バインディングであるにもかかわらず、古いコードのオブジェクトファイルがジェネリックプログラミングパラダイムを使用する新しいコードを使用できるのはなぜですか?

  8. 8

    フィールドのジェネリックパラメータのクラスを取得する方法

  9. 9

    Java:ジェネリック型オブジェクトインスタンスから列挙型クラスの値を取得する方法は?

  10. 10

    Javaジェネリック:ジェネリックインターフェイスでジェネリッククラスのIDを取得する方法は?

  11. 11

    Javaのジェネリッククラスのジェネリック型メンバーを比較する方法

  12. 12

    このクラスが非ジェネリックな方法で使用されている場合、Javaジェネリッククラスはすべてのフィールドのジェネリック情報を見逃しますか?

  13. 13

    JAVA:リフレクションでジェネリック型のコンストラクタを取得するかどうかわからない

  14. 14

    リフレクションを使用してC#のネストされた型のDeclaringTypeからジェネリック型を取得する

  15. 15

    ジェネリックスパラメーターと戻り値型メソッドを持つJavaでリフレクションを使用してクラスのインスタンスを取得する方法

  16. 16

    例外なくオブジェクトディクショナリからジェネリック型の値を取得する

  17. 17

    Swiftでジェネリッククラスのシングルトンを作成する方法

  18. 18

    ジェネリックを介してシングルトンオブジェクトから値を取得する方法

  19. 19

    リフレクションを使用してジェネリック戻り値の型でジェネリックメソッドを呼び出す方法

  20. 20

    C#でジェネリック型のプライベート静的フィールドを処理する良い方法はありますか?

  21. 21

    ジェネリック型のアクセス静的フィールド

  22. 22

    Javaリフレクション:メソッドのジェネリック型のクラスを取得する方法?

  23. 23

    Scalaのジェネリック型からフィールド名とフィールド型を取得する方法は?

  24. 24

    ジェネリックインターフェイスと演算子のオーバーロード-ジェネリックインターフェイスブロックからのプロシージャをモジュール内でプライベートに設定する方法は?

  25. 25

    ネストされたジェネリックのジェネリック型をクラストークンで保持する方法

  26. 26

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

  27. 27

    Djangoのジェネリックビュー:外部クラス属性に基づいてget_querysetをフィルタリングする方法は?

  28. 28

    ジェネリックメソッドを非ジェネリックメソッドでオーバーライドするときに、サブシグネチャとチェックされていないルールが戻り値の型に対してこのように機能するのはなぜですか?

  29. 29

    ジェネリッククラスのコンストラクターのオプションフィールドのデフォルト値

ホットタグ

アーカイブ