我有一个类(TabControlH60),它继承自基类(UserControl)并实现一个接口(IFrameworkClient).我使用.NET Activator类实例化对象.使用返回的实例,我可以转换为UserControl基类,但不能转换为接口.我得到的例外是在代码snipet下面.如何转换为界面?
object obj = Activator.CreateInstance(objType);
Type[] interfaces = obj.GetType().GetInterfaces(); // contains IFrameworkClient
m_Client = (UserControl)obj; // base class cast works
IFrameworkClient fc = (IFrameworkClient)obj; // interface cast fails
// Note: The (IFrameworkClient)obj cast works fine in the debugger Watch window.
{"Unable to cast object of type 'FPG.H60.AFF.TabControlH60' to type
'FPG.AFF.Interfaces.IFrameworkClient'."}
Run Code Online (Sandbox Code Playgroud) 在本次讲座(https://learn.microsoft.com/en-us/dotnet/core/tutorials/creating-app-with-plugin-support)之后,我成功创建了一个基于插件的应用程序。到目前为止,一切都很好。但是,我想用我的插件做更多事情。因此,我为其中一个创建了一个额外的库。当然,在开发我的插件时,我对我创建的这个库有库依赖性。问题更多的是执行力。运行我的应用程序时,尤其是当插件执行其任务时,我遇到了一个异常:
Could not load file or assembly 'MyLibObjectsLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)
MyLibObjectsLib 当然是被调用插件使用的附加库。有什么我错过的吗?