C# 如何在Visual Studio 2012中从另一个项目动态加载类?

C# 如何在Visual Studio 2012中从另一个项目动态加载类?,c#,wcf,visual-studio-2012,C#,Wcf,Visual Studio 2012,我正在开发一个WCF服务,它使用一个接口(而不是ServiceContract接口)来执行一些内部工作。我的目标是在部署后通过提供新的DLL和实现此接口的类(以及相应的web.config更新),扩展此服务的功能 我从实现接口的一个类开始。在我的解决方案中,我在一个具有接口定义的项目(WCF服务应用程序)中拥有服务,在另一个项目(Windows类库)中拥有实现该接口的类 我使用以下代码动态加载该类(基于调用服务时传递的参数): 调用此行时,我得到一个FileNotFoundException,无

我正在开发一个WCF服务,它使用一个接口(而不是ServiceContract接口)来执行一些内部工作。我的目标是在部署后通过提供新的DLL和实现此接口的类(以及相应的web.config更新),扩展此服务的功能

我从实现接口的一个类开始。在我的解决方案中,我在一个具有接口定义的项目(WCF服务应用程序)中拥有服务,在另一个项目(Windows类库)中拥有实现该接口的类

我使用以下代码动态加载该类(基于调用服务时传递的参数):

调用此行时,我得到一个FileNotFoundException,无法加载文件或程序集

我相信上面的代码是正确的,因为我让它在运行时从一个单独的概念验证项目工作,一旦它被构建和部署,并且DLL被放置在与EXE相同的文件夹中。我相信我的问题与我如何引用项目有关,或者与我在Visual Studio中运行时传递给CreateInstance()方法的变量有关

我尝试过,但仍然得到相同的错误:在WCF服务项目中,我将类库项目设置为引用。在WCF服务项目中,我添加了一个指向接口实现类的链接

我想知道我用于AssemblyQualifiedName和ClassType的值是否在Visual Studio中不起作用,因为它们尚未部署

即使您认为完全不同的方法更好,任何建议都将受到欢迎

在首次发布后添加:
发布后我有了一个想法,我将实现类的接口从类库项目移到了WCF服务项目。当我这样做的时候,它就起作用了。对我来说,这消除了程序集和类型参数的问题,问题是我没有正确链接到类库项目。

您可以将接口防御移到另一个共享库(dll)中,然后使用它。

几天前我回答了一个类似的问题:我看了您的帖子,但我不知道如何将其应用于我的情况。我的代码在部署时可以工作,但在VisualStudio开发时,我似乎无法获得一个好的参考。
InterfaceFoo af = (InterfaceFoo)System.Activator.CreateInstance(AssemblyQualifiedName, ClassType).Unwrap();