因此,我有一个接口IMultiplayerService
和几个实现它的类,例如Pbw3
类。现在Pbw3
代表一个特定的服务器应用程序,但是该服务器可能有多个实例-一个由我运行,一个由朋友运行,等等。
是否有办法让MEF实例化Pbw3
多次?还是仅限于每个导入的类的一个实例?
我想一种解决方法可能是为每个多人服务器类创建一个工厂类,然后由MEF创建,但是我希望有一种更简单的方法...
看看MEF的ExportFactory。
您可以导入ExportFactory<IMultiplayerService>
,然后根据需要创建新实例:
[Import]
public ExportFactory<IMultiplayerService> MultiplayerServiceFactory { get; set; }
var instance1 = MultiplayerServiceFactory.CreateExport().Value
var instance2 = MultiplayerServiceFactory.CreateExport().Value