private void CollectExtraReferences(DocumentNode node, ReplaceStyleTemplateCommand.ExtraReferences references) { if (node.Parent != null && node.IsProperty) { ReplaceStyleTemplateCommand.EnsureMember((IMember)node.SitePropertyKey, references); } ReplaceStyleTemplateCommand.EnsureType(node.Type, references); IMember valueAsMember = DocumentPrimitiveNode.GetValueAsMember(node); if (valueAsMember != null) { ReplaceStyleTemplateCommand.EnsureMember(valueAsMember, references); } foreach (DocumentNode node1 in node.ChildNodes) { this.CollectExtraReferences(node1, references); } }
private static void EnsureMember(IMember member, ReplaceStyleTemplateCommand.ExtraReferences references) { IProperty property = member as IProperty; if (property != null) { ReplaceStyleTemplateCommand.EnsureType(property.PropertyType, references); } IType type = member as IType; if (type != null) { ReplaceStyleTemplateCommand.EnsureType(type, references); } else { ReplaceStyleTemplateCommand.EnsureType(member.DeclaringType, references); } }