Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/rest/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MEF还是提供商模型?_C#_Mef_Provider - Fatal编程技术网

C# MEF还是提供商模型?

C# MEF还是提供商模型?,c#,mef,provider,C#,Mef,Provider,我正在从事一个项目,该项目目前正在使用MEF为控制台应用程序导入扩展。我正在研究为应用程序提供不仅仅是基于控制台的输出的能力,这些输出可以根据用户的需要进行配置 我想知道在这一点上,为了提供输出功能的可扩展性,应该走哪条路。在过去,我会使用自定义提供程序模型来允许通过App.config文件配置扩展 是否有一种简单的方法可以以类似的方式选择性地管理MEF中的部件,或者我应该为我的项目采用两种不同的扩展模式(即,核心扩展采用MEF导入,输出管理采用.net自定义提供程序模型)?James,根据我对

我正在从事一个项目,该项目目前正在使用MEF为控制台应用程序导入扩展。我正在研究为应用程序提供不仅仅是基于控制台的输出的能力,这些输出可以根据用户的需要进行配置

我想知道在这一点上,为了提供输出功能的可扩展性,应该走哪条路。在过去,我会使用自定义提供程序模型来允许通过App.config文件配置扩展


是否有一种简单的方法可以以类似的方式选择性地管理MEF中的部件,或者我应该为我的项目采用两种不同的扩展模式(即,核心扩展采用MEF导入,输出管理采用.net自定义提供程序模型)?

James,根据我对MEF的记忆,除了使用属性导入/导出模型外,您还可以编写自己的“提供者”模型

您可能应该研究MEF contrib项目,该项目扩展了默认的属性化提供者模型。IIRC它有一个内置的基于配置的提供者模型和一个流畅的编程模型

请查看:


我在Contrib项目中完全忘记了这一点。太棒了,谢谢!