我有以下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项目中可用。
如何使这种工厂模式正常工作?