MEF框架学习之旅(八)避免发现
在某些情况下,您可能需要防止部件作为目录的一部分被发现。 例如,部件可能是应从中继承(而不是使用)的基类。 可通过两种方式来实现此目的。 首先,可以对部件类使用 abstract 关键字。 尽管抽象类能够向派生自抽象类的类提供继承的导出,但抽象类从不提供导出。
如果无法使类成为抽象类,您可以使用 PartNotDiscoverable 特性来修饰它。 用此特性修饰的部件将不会包括在任何目录中。 下面的示例演示这些模式。 DataOne 将被目录发现。 由于 DataTwo 是抽象的,因此它将不会被发现。 由于 DataThree 使用了 PartNotDiscoverable 特性,因此它将不会被发现。
代码段
[Export] public class DataOne { //This part will be discovered //as normal by the catalog. } [Export] public abstract class DataTwo { //This part will not be discovered //by the catalog. } [PartNotDiscoverable] [Export] public class DataThree { //This part will also not be discovered //by the catalog. }
相关阅读: