2012-04-12 15 views
6

インスタンスを作成するのにType.GetType()を使用しています。Type.GetType()動的文字列戻り値

これは動作します:

var type = Type.GetType("Test.ClassServices.HowService, Test"); 

しかし、このdoesn't作品を。それはnullを返します。

var name = "How"; 
var type = Type.GetType("Test.ClassServices."+name+"Service, Test"); 
+2

GetTypeはインスタンスを作成しません。指定された型を表すTypeオブジェクトを返します。 nullについては、アセンブリが見つかり、ロードでき、名前空間が正しいことを確認してください。 – Lloyd

+4

.NET 4でこれを試しましたが問題はありませんでした。だから、タイプミスのコードをダブルチェックしてください。 – Jetti

+2

2番目の例で誤字がないと確信していますか?私は 'name'変数の値が計算されると思います、これが正しく行われたことを確信していますか? –

答えて

5

No-reproを返します。 MSDNにType.GetType()から

var hardCodedWorking = Type.GetType("System.String"); 

var stringName = "String"; 
var concatenatedWorking = Type.GetType("System." + stringName); 

var badStringName = "string"; 
var concatenatedNull = Type.GetType("System." + badStringName); 

:このサンプルを実行

は、大文字と小文字を区別し 検索を実行し、指定した名前のTypeを取得します。

上記と私の例に基づいて、nameの値がクラスの名前と完全に一致しない可能性が最も高いと思います。