それぞれが interface を実装するさまざまなクラス ライブラリがありますIImportCharacter
。私のメイン アプリでは、ユーザーが DLL を選択し、アプリはライブラリがインターフェイスを実装しているかどうかを確認し、それを実装するライブラリでクラスをインスタンス化する必要があります。これを行うためにリフレクションを使用しようとしていますが、取得し続けます:
「CustomCharacter.Ogre」タイプのオブジェクトを「MainGame.IImportCharacter」タイプにキャストできません。
Assembly assembly = assemblyPath;
foreach (Type type in assembly.GetTypes())
{
IImportCharacter instance = null;
if (type.GetInterface("IImportCharacter") != null)
{
//exception thrown at this line
instance = (IImportCharacter)Activator.CreateInstance(type);
}
}
同じファイルをメイン プロジェクトにコピーしましたIImportCharacter
。そうしないと、コンパイラが何がわからないと文句を言いIImportCharacter
ます。動的にロードされるのと同じではないため、これが問題を引き起こしている可能性があると思います。どうすればこれを修正できますか?