public T4CSharpCodeStructureDeclaredElement(CodeStructureElement parentElement, IDeclaration declaration, CSharpCodeStructureProcessingState state)
            : base(parentElement, declaration)
        {
            IDeclaredElement declaredElement = declaration.DeclaredElement;

            InitiallyExpanded = true;

            if (declaredElement != null && state.Options.BuildInheritanceInformation)
            {
                _inheritanceInformation = InheritanceInformation.FromDeclaredElement(declaredElement);
                if (_inheritanceInformation != null)
                {
                    var structureDeclaredElement = parentElement as T4CSharpCodeStructureDeclaredElement;
                    if (structureDeclaredElement != null)
                    {
                        structureDeclaredElement.ChildrenWithInheritance = true;
                    }
                }
            }

            _parentRegion = state.Regions.TryPeek();

            if (declaredElement != null)
            {
                _aspects = new T4CSharpCodeStructureAspects(this, declaration);
            }
        }
		public T4CSharpCodeStructureDeclaredElement(CodeStructureElement parentElement, IDeclaration declaration, CSharpCodeStructureProcessingState state)
			: base(parentElement, declaration) {
			IDeclaredElement declaredElement = declaration.DeclaredElement;
			InitiallyExpanded = true;

			if (declaredElement != null && state.Options.BuildInheritanceInformation) {
				_inheritanceInformation = InheritanceInformation.FromDeclaredElement(declaredElement);
				if (_inheritanceInformation != null) {
					var structureDeclaredElement = parentElement as T4CSharpCodeStructureDeclaredElement;
					if (structureDeclaredElement != null)
						structureDeclaredElement.ChildrenWithInheritance = true;
				}
			}

			_parentRegion = state.Regions.TryPeek();

			if (declaredElement != null)
				_aspects = new T4CSharpCodeStructureAspects(this, declaration);
		}