0

文字列を取り、文字列に記載されている「タイプ」に基づいて型付きリストを作成したいと思います。たとえば、str が「System.string」であるとします。リストを作成するメソッドが欲しいです。もちろん、文字列には、アセンブリ内の任意のオブジェクトを "参照" するテキストを含めることができます。次のことを試してみましたが失敗しました:

    Type classType = Type.GetType(str);
    List<classType> wgList = new List<classType>();

「classType はフィールドですが、型のように使用されています」というメッセージが表示されます。

これを修正して必要なものを取得するにはどうすればよいですか?

次のコードは、優れたソリューションを提供します。

 Type ty = Type.GetType(ItemType); 
 wgList = (IList)Activator.CreateInstance(typeof(List<>).MakeGenericType(ty));    
4

1 に答える 1

0

あなたはそれを行うことはできませんか、私はあなたの目的が何であるかを理解していませんか?

代わりに List< object > を使用してください。

System.Linq 名前空間の拡張メソッド is Cast< T>() を使用して、List< object > を List< T > に変換できます。

List<Entry> entries = wgList.Cast<Entry>().ToList()
于 2012-12-03T03:48:14.457 に答える