使用“还原”和“子组件”的可选择性
还原的可选择性允许请求者确定何时可以单独还原组件。 已包含在备份中的组件可以采用以下两种方式之一显示:
- 组件可能已 显式包含在 备份中。 这些组件在备份组件文档中具有相应的 IVssComponent 实例。 这些组件包含在使用 IVssBackupComponents::SetSelectedForRestore 的还原中。
- 组件可能已 隐式包含在 备份中。 这些组件在备份组件文档中没有相应的 IVssComponent 实例;但是,文档中某些上级组件的 IVssComponent 实例将始终存在。 这些组件包含在使用 IVssBackupComponents::AddRestoreSubcomponent 的还原中。
备份中显式包含的任何组件始终可以单独选择用于还原,而不考虑其可选择性还原值。 请求者调用 IVssBackupComponents::SetSelectedForRestore,传入特定组件的编写器 ID、逻辑路径和名称。 还原显式包含的上级时,备份中隐式包含的组件将还原。 仅当隐式包含的组件标记为可还原时,才能单独选择这些组件进行还原。 请求者首先在最近包含的上级组件上调用 IVssBackupComponents::SetSelectedForRestore ,然后在上级组件上调用 IVssBackupComponents::AddRestoreSubcomponent ,以选择隐式包含的组件进行还原。 完成此操作后,将仅还原隐式选择的组件;不会还原组件集中的所有其他组件。
与备份的可选择性不同,在使用 IVssCreateWriterMetadata::AddComponent 添加组件时,必须始终显式设置备份,还原的可选择性默认值为 false,可重写该默认值。
由于顶级组件 (具有空逻辑路径的组件) 只能显式包含在备份中,因此还原的可选择性对这些组件毫无意义。