Example #1
0
 internal P_MetadataDependencySupport(MetadataBase metadata)
     : base(outerDependencies: null)
 {
     metadata.EnsureNotNull(nameof(metadata));
     //
     _metadata           = metadata;
     _outerScopeProvider = new DefaultOuterDependencyScopeGetter(outerScopeGetter: metadata.P_GetOuterDependencyScope);
 }
Example #2
0
 protected override void Dispose(bool explicitDispose)
 {
     if (explicitDispose)
     {
         _outerScopeProvider?.Dispose();
     }
     _outerScopeProvider = null;
     _metadata           = null;
     //
     base.Dispose(explicitDispose);
 }
Example #3
0
 protected virtual void PopulateCopy(CopyArgs args, MetadataBase copy)
 {
     copy.EnsureNotNull(nameof(copy));
     //
     if (args.Element != null)
     {
         var link = new Link <IMetadataTreeElement, IVh <IMetadata> >(source: args.Element, target: copy.ToValueHolder(ownsValue: true));
         copy.WriteDA(location: ref copy._treeElementLink, value: link);
         args.Element.SetMetadata(link: link);
     }
     //
     foreach (var referenceSet in EnumerateDA(value: P_GetCopyOfReferenceSetRegistry().Select(locItem => locItem.Set), considerDisposeRequest: true))
     {
         copy.RegisterReferenceSet(referenceSet: referenceSet.CreateCopy(args: null), useDeserializationContext: true);
     }
 }
Example #4
0
 static P_MetadataDependencySupport P_CreateDependencySupport(MetadataBase metadata)
 => new P_MetadataDependencySupport(metadata);