如何使工厂模式在项目之间工作?

时间:2018-07-20 08:31:54

标签: c# winforms factory-pattern

我有以下3个项目。

服务: 在这个项目中,我有许多“服务”类和以下工厂类:

[Java framework] Error in function createSettingsDocument (elements.cxx).
javaldx failed!
Warning: failed to read path from javaldx
No protocol specified

服务界面如下:

public class ServiceFactory : IServiceFactory
{
    public TService Get<TEntity, TService>()
        where TEntity : class
        where TService : IService<TEntity>
    {
        object[] args = new object[] { };

        return (TService)Activator.CreateInstance(typeof(TService), args);
    }
}

主要: 主项目实现上述项目中定义的服务,例如:

public interface ICustomerService : IService<Customer>
{
    IEnumerable<Customer> GetAll();
}

插件 该项目包含插件,每个插件可以使用一个或多个不同的服务。插件使用public class CustomerService : ICustomerService { public IEnumerable<Customer> GetAll() { return null; } } 加载。一个插件可能看起来像这样:

MEF

在主项目中加载并创建插件。

但是,以上代码(在Plugins项目中)存在问题,因为serviceFactory尝试创建具体的实现,即。 CustomerService,但这显然是不可能的,因为它仅在Main项目中可用。

如何使这种工厂模式正常工作?

0 个答案:

没有答案