/// <summary> /// See <see cref="GetMetadataValue(string)">GetMetadataValue</see> for a more detailed explanation. /// Returns the escaped value of the metadatum requested. /// </summary> string IItem.GetMetadataValueEscaped(string name) { ErrorUtilities.VerifyThrowArgumentLength(name, "name"); string value = null; if (_directMetadata != null) { ProjectMetadata metadatum = _directMetadata[name]; if (metadatum != null) { value = metadatum.EvaluatedValueEscaped; } } if (value == null) { value = GetBuiltInMetadataEscaped(name); } if (value == null) { ProjectMetadata metadatum = GetItemDefinitionMetadata(name); if (null != metadatum && Expander <ProjectProperty, ProjectItem> .ExpressionMayContainExpandableExpressions(metadatum.EvaluatedValueEscaped)) { Expander <ProjectProperty, ProjectItem> expander = new Expander <ProjectProperty, ProjectItem>(null, null, new BuiltInMetadataTable(this), FileSystems.Default); value = expander.ExpandIntoStringLeaveEscaped(metadatum.EvaluatedValueEscaped, ExpanderOptions.ExpandBuiltInMetadata, metadatum.Location); } else if (null != metadatum) { return(metadatum.EvaluatedValueEscaped); } } return(value ?? String.Empty); }