これらは同様の質問です:How-to: Load a type from a referenced assembly at runtime using a string in Silverlight、GetType on a class in a referenced assembly failsどちらの回答も機能しません。文字列としてクラス名を指定して参照アセンブリ内の型を取得しますか?
プレーンタイプを文字列として含むデータベースからデータを取得するMVCプロジェクトがあります。これらの型は参照されたアセンブリにあり、MVCプロジェクトではありません。
したがって、たとえばのは、私の参照アセンブリ名がMyFramework
とプレーンタイプ名Car
で、完全なタイプ名がMyFramework.Cars.Car
またはMyFramework.Vehicles.Cars.Car
または他のいくつかのバリエーション可能性がありましょう。私が持っているのは、参照されたアセンブリ名とプレーンなクラス名です。完全な型名に関係なく、どのように型を取得できますか?
最後に、GetType()を呼び出してMvCプロジェクトで使用してアセンブリ名を含めることができるように、参照アセンブリに関数を書き込むことはできますか?私はので、私は私のように参照アセンブリ内の使用率を記述することができると思ったアセンブリ名を知って削除する:
namespace MyFramework //the referenced assembly
{
public static class TypeUtil
{
public static Type GetFrameworkType(string typeName)
{
return Type.GetType(typeName);
}
}
}
そして、私のMVCプロジェクトで、私は文字列名としてアセンブリを必要とせずに、それを呼び出すことができます。それは可能ですか、私はいつもアセンブリ名が必要でしょうか?
他の回答はなぜ機能しませんでしたか? –
@RobertHarvey私は単純なクラス名を持っているからです。完全な型名ではありません。これらの答えは、フルタイプを知ることに依存しています。 – SventoryMang