Пример #1
0
 protected override void Dispose(bool explicitDispose)
 {
     if (explicitDispose)
     {
         _children?.Dispose();
         _inclusions?.Dispose();
         _metadataElementLink?.Target?.Dispose();
     }
     _children            = null;
     _inclusions          = null;
     _metadataElementLink = null;
     base.Dispose(explicitDispose);
 }
Пример #2
0
 public MetadataTreeNode(IMetadataTreeNode parent, string caption = null, IMetadataTreeElement metadataElement = default, ReadOnlyStateTag readOnlyState = default)
     : base(caption : caption, readOnlyState : readOnlyState)
 {
     //
     _children   = new MetadataTreeNodeContainer(this);
     _inclusions = new MetadataTreeNodeInclusionContainer(this);
     //
     if (metadataElement != null)
     {
         SetMetadataElement(link: new Link <MetadataTreeNode, IMetadataTreeElement>(this, metadataElement));
     }
     if (parent != null)
     {
         parent.Children.AddComponent(this);
     }
 }
Пример #3
0
        protected override void OnDeserialized(StreamingContext context)
        {
            base.OnDeserialized(context);
            //
            var children = ReadDA(ref _children);

            if (children == null)
            {
                WriteDA(ref _children, children = new MetadataTreeNodeContainer(this));
            }
            children.SetOwnerComponent(this);
            //
            var inclusions = ReadDA(ref _inclusions);

            if (inclusions == null)
            {
                WriteDA(ref _inclusions, inclusions = new MetadataTreeNodeInclusionContainer(this));
            }
            inclusions.SetOwnerComponent(this);
            //
            ReadDA(ref _metadataElement)
            .Fluent().NullCond(metadataElement => SetMetadataElement(new Link <IMetadataTreeNode, IMetadataTreeElement>(this, metadataElement)));
        }