示例#1
0
 public NameFixupToken()
 {
     _names = new List <string>();
     _nameScopeDictionaryList = new List <INameScopeDictionary>();
     Target = new FixupTarget();
     Target.TemporaryCollectionIndex = -1;
     Target.InstanceIsOnTheStack     = true;
 }
示例#2
0
        public void AddEndOfParseDependency(object childThatHasUnresolvedChildren, FixupTarget parentObject)
        {
            NameFixupToken token = new NameFixupToken {
                Target           = parentObject,
                FixupType        = FixupType.UnresolvedChildren,
                ReferencedObject = childThatHasUnresolvedChildren
            };

            AddToMultiDict <object>(this._dependenciesByParentObject, parentObject.Instance, token);
        }
示例#3
0
        public void AddEndOfParseDependency(object childThatHasUnresolvedChildren, FixupTarget parentObject)
        {
            NameFixupToken token = new NameFixupToken();

            token.Target           = parentObject;
            token.FixupType        = FixupType.UnresolvedChildren;
            token.ReferencedObject = childThatHasUnresolvedChildren;
            AddToMultiDict(_dependenciesByParentObject, parentObject.Instance, token);
            // We don't add to the _dependenciesByChildObject, because at end-of-parse, a single
            // child object can be a dependency of multiple parents
        }
 private void CompleteDeferredInitialization(FixupTarget target)
 {
     this.ExecutePendingAdds(target.InstanceType, target.Instance);
     if (!target.InstanceWasGotten)
     {
         IAddLineInfo lineInfo = this.Runtime.LineInfo;
         this.Runtime.LineInfo = target;
         try
         {
             this.Runtime.InitializationGuard(target.InstanceType, target.Instance, false);
         }
         finally
         {
             this.Runtime.LineInfo = lineInfo;
         }
         this.OnAfterEndInit(target.Instance);
     }
 }