2016-03-22 42 views
0

私はDBからクラスの名前を取得し、そのクラスのメソッドを実行するスケジューラに取り組んでいます。指定された文字列でクラス参照を取得する方法

問題は、クラスへの参照を取得できないということです。

私は基本的に何をしたいです:

Type myType = typeof(object).Assembly.GetType("MyNameSpace.MyClass"); 

しかし、タイプは常にnullです:

using MyNameSpace; 
... 
    Type myType = Type.GetType("MyNameSpace.MyClass"); 
    myInterface myObject = (myInterface)Activator.CreateInstance(myType); 
    myObject.Run(); 

は、私はので、私はこのような何かをしようとしたアセンブリ名が必要知っています。

希望のクラスは、同じソリューションにありますが、他のプロジェクトにあります。 run()メソッドを実行できるように、参照を取得するにはどうすればよいですか?

THX

+2

'typeof(object).Assembly'とは何と思いますか?参照されたアセンブリではなく 'mscorlib'を返します。 'mscorlib'はあなたのタイプを含んでいません。アセンブリの修飾名を使用します。[duplicate](http://stackoverflow.com/questions/3512319/resolve-type-from-class-name-in-a-different-assembly)を参照してください。 – CodeCaster

+0

"複製"の例は機能しません。 System.Stringでは動作しますが、自分のクラスでは機能しません。 タイプmyType = Type.GetType( "CSTurbo.AppWeb.Lib.Jobs.UpdateMetadataJob、AssemblyName"); – Dave

+1

さらに1つまたは2つのリンクをクリックするか、さらに検索してみてください:[Type.GetType( "namespace.abClassName")はnullを返す](http://stackoverflow.com/questions/1825147/type-gettypenamespace-ab-classname- returns-null)、[文字列としてクラス名を指定して参照アセンブリ内の型を取得しますか?](http://stackoverflow.com/questions/11994057/get-type-in​​-referenced-assembly-by-supplying-class-name-文字列として)。種類がそのアセンブリに含まれていないか、アセンブリが読み込まれていません。この質問はこれまでに何度も聞かれました。 – CodeCaster

答えて

0

この タイプMYTYPE = typeof演算(IMyInterfaceという).Assembly.GetType( "MyNameSpace.MyClass")をしてみてください。

関連する問題