在WCF客户端服务中使用MEF导入的共享方法

本文关键字:导入 MEF 共享 方法 WCF 客户端 服务 | 更新日期: 2023-09-27 18:29:15

我正在使用以下代码在WCF客户端服务主类中成功加载插件:

    [Import]
    public IBasePluginService PluginService { get; set; }

    public void PluginCompose(string targetPath)
    {
        var catalog = new DirectoryCatalog(targetPath);
        var container = new CompositionContainer(catalog);
        container.ComposeParts(this);
    }

并使用调用一个方法:

PluginCompose(加载PluginTarget);PluginService.HelloWorld("Something");

如何使插件dll方法在实现双工合约回调接口的类中可用?

在调用插件dll中的方法之前,是否每次都需要调用PluginCompose()?

在WCF客户端服务中使用MEF导入的共享方法

您需要组成(注入依赖项)组件,否则您的插件将无法使用。您可以将其放入构造函数中,也可以使用其他方法在第一次调用时为您初始化组件。

换句话说,这就是加载并使您的插件工作并可供使用的东西,所以在开始使用插件之前,您需要让这一点魔法发生,哦,您可能希望使用using

using(var catalog = new DirectoryCatalog(targetPath))
using(var container = new CompositionContainer(catalog))
{
    container.ComposeParts(this);
}