[解決済み] 文字列表現からジェネリックタイプを取得するには?
2023-07-10 04:37:58
質問
私は
MyClass<T>
.
そして、次のような
string s = "MyClass<AnotherClass>";
. 文字列からTypeを取得するには
s
?
一つの方法(醜い)は、"<" と ">" をパースして行うことです。
Type acType = Type.GetType("AnotherClass");
Type whatIwant = typeof (MyClass<>).MakeGenericType(acType);
しかし、パースなどを行わずに最終的な型を取得する、よりクリーンな方法はないでしょうか?
どのように解決するのですか?
この 形式のジェネリック は、名前、`文字、型パラメータの数、その後に括弧で囲まれた型パラメータのカンマ区切りのリストが続きます。
Type.GetType("System.Collections.Generic.IEnumerable`1[System.String]");
ジェネリック用のC#構文からCLRが望む種類の文字列に変換する簡単な方法があるとは思えません。 質問で言及されたように、それを解析する簡単な正規表現を書き始めましたが、ネストされたジェネリックスを型パラメーターとして持つ能力を放棄しない限り、解析は非常に複雑になることに気付きました。
関連
-
[解決済み】「The breakpoint will not currently be hit」を改善するには?このドキュメントにはシンボルが読み込まれていません。" という警告はどうすれば改善されますか?
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み] リフレクションを使用して文字列からプロパティ値を取得する
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] C#で文字列のエンコーディングを手動で指定せずに、一貫性のあるバイト表現を得るには?
-
[解決済み] C#がforeachで変数を再利用するのは理由があるのか?
-
[解決済み】TをEnumに拘束するGenericメソッドの作成
-
[解決済み】文字列の中にある文字列(実際はchar)の出現回数を数えるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】指定されたキャストが有効でない?
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】"The ConnectionString property has not been initialized "を修正する方法
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】5.7.57 SMTP - MAIL FROMエラー時に匿名メールを送信するためにクライアントが認証されない
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。