CreationPolicy 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
指定何时以及如何实例化部件。
public enum class CreationPolicy
public enum CreationPolicy
type CreationPolicy =
Public Enum CreationPolicy
- 继承
字段
Any | 0 | 指定 CompositionContainer 将为部件使用给定当前上下文中最适当的 CreationPolicy。 这是默认的 CreationPolicy。 默认情况下,除非 CompositionContainer 或导入程序请求 Shared,否则 ComposablePart 将使用 NonShared。 |
NewScope | 3 | |
NonShared | 2 | 指定将由 ComposablePart 为每个请求者创建一个关联的 CompositionContainer 的新的非共享实例。 |
Shared | 1 | 指定将由 ComposablePart 创建关联的 CompositionContainer 的单个共享实例,并由所有请求者共享该实例。 |
注解
在撰写过程中,需要导出描述的对象的实例 CompositionContainer ,以便填充导入。 如果使用一个导出来填充多个导入,则有两种可能的行为。 要么创建导出对象的单个实例,然后向每个导入程序提供对同一对象的引用,要么为每个导入程序创建导出对象的单独实例。
发生哪种行为取决于附加到导出的 的 属性 CreationPolicy PartCreationPolicyAttribute 和 的 RequiredCreationPolicy ImportAttribute 。 这两者都将包含 枚举 CreationPolicy 中的值。 如果策略不兼容,该导出不会被视为与给定导入的匹配项。 下表总结了这两个属性的交互。
RequiredCreationPolicy | Export 的 CreationPolicy 指定"任何"或"未指定"。 | 导出的 CreationPolicy 指定共享 | Export 的 CreationPolicy 指定 NonShared |
---|---|---|---|
任意 | 将创建导出对象的单个共享实例。 | 将创建导出对象的单个共享实例。 | 将针对每个导入程序创建导出对象的新实例。 |
共享 | 将创建导出对象的单个共享实例。 | 将创建导出对象的单个共享实例。 | 导出不会被视为与导入匹配。 |
NonShared | 将针对每个导入程序创建导出对象的新实例。 | 导出不会被视为与导入匹配。 | 将针对每个导入程序创建导出对象的新实例。 |