我有一个主要的应用程序,有一个"表"它实现了界面" ITable"来自dll" Lib":
主要应用 :
using Lib;
namespace One
{
public class Main
{
// Here the method "Work" from the plugin is called with first
// parameter a string and second parameter a dictionary with "Table"
// objects and then it shows here the fault message
plugin.Work("My Input", tableDictionary)
}
public class Table : ITable
{
}
}
类库 :" Lib"
namespace Two
{
public interface ITable
{
}
}
插件-项目 :
using Lib;
namespace Three
{
public class Example
{
public string Work(string input, Dictionary<string, ITable> tableDict)
{
// Here i want to use table objects from the main application
// Do something with the table objects
}
}
}
主应用程序的插件是在第二个项目&#34; Plugin-Project&#34;中创建的。它使用dll(因为我想在第二个&#34;插件&#34; -project中使用主要应用程序的对象/类&#34; table&#34;)。我在这里遵循这个插件方法:
Creating a simple plugin mechanism
但是当我在插件项目中使用table-object时,将其导入我的主应用程序并运行主应用程序,我得到的错误是 &#34;无法转换&#34;表&#34; to&#34; ITable&#34;&#34; 运行时不是例外。这只是VisualStudio故障列表中显示的故障。
问题是我想在插件中使用Table对象,就像我可以在主应用程序中使用它一样。因此我使用界面。但是,当我的主应用程序使用Table对象时,我可以使用ITable对象吗?
更新:我对问题描述进行了一些编辑,希望现在更容易理解。 (也删除了插件中的ITable对象测试,这是不对的)。在&#34; Main&#34;插件导入的主要应用程序等(工作正常,并未在上面的代码中显示)然后方法&#34;工作&#34;从插件中调用。 我简化的主要问题是:如何在插件中使用主应用程序的表对象?