protected override void Work() { IProjectDocument projectDocument1 = this.projectDocuments[this.currentProjectDocument]; if (projectDocument1 == null || projectDocument1.Document != null) { return; } IProjectDocument projectDocument2 = this.model.ResourceEntryNode.ProjectContext.OpenDocument(projectDocument1.Path); if (projectDocument2 == null) { return; } SceneDocument document = projectDocument2.Document as SceneDocument; if (document == null || !document.IsEditable) { return; } IDocumentRoot documentRoot = document.DocumentRoot; DocumentNode searchKey = (DocumentNode)null; SceneNode keyNode = this.model.ResourceEntryNode.KeyNode; if (keyNode != null) { searchKey = keyNode.DocumentNode; } foreach (DocumentNode documentNode1 in documentRoot.RootNode.SelectDescendantNodes((Predicate <DocumentNode>)(node => { DocumentCompositeNode node1 = node as DocumentCompositeNode; return(node1 != null && node1.Type.IsResource && ResourceNodeHelper.GetResourceKey(node1).Equals(searchKey)); }))) { ITypeMetadataFactory metadataFactory = this.model.ResourceEntryNode.ProjectContext.MetadataFactory; IType type = documentNode1.TypeResolver.ResolveType(PlatformTypes.FrameworkElement); DocumentCompositeNode documentCompositeNode = documentNode1.SelectFirstAncestorNode(type.RuntimeType) as DocumentCompositeNode; string caption = document.Caption; string str; if (documentCompositeNode != null) { IPropertyId index = (IPropertyId)metadataFactory.GetMetadata(documentCompositeNode.TargetType).NameProperty; DocumentNode documentNode2 = documentCompositeNode.Properties[index]; if (documentNode2 != null) { DocumentPrimitiveNode documentPrimitiveNode = documentNode2 as DocumentPrimitiveNode; str = documentPrimitiveNode == null?documentNode2.ToString() : documentPrimitiveNode.Value.ToString(); } else { str = documentCompositeNode.ToString(); } } else { str = documentNode1.ToString(); } this.model.ReferenceNames.Add(string.Format((IFormatProvider)CultureInfo.CurrentCulture, StringTable.ReferencesFoundFormat, new object[2] { (object)str, (object)caption })); this.model.AddReferencesFile(document); } this.model.ResourceEntryNode.ViewModel.DesignerContext.DocumentService.CloseDocument((IDocument)document); }