internal static object ConvertFromHelper(ITypeDescriptorContext context, object value) { if (value == null) { return(null); } String stringValue = value as String; if (stringValue == null) { return(null); } stringValue = stringValue.Trim(); if (stringValue == String.Empty) { return(null); } IXamlNamespaceResolver resolver = context.GetService(typeof(IXamlNamespaceResolver)) as IXamlNamespaceResolver; if (resolver == null) { return(null); } if (stringValue[0] == '{') { return(XName.Get(stringValue)); } int indexOfColon = stringValue.IndexOf(':'); string prefix, localName; if (indexOfColon >= 0) { prefix = stringValue.Substring(0, indexOfColon); localName = stringValue.Substring(indexOfColon + 1); } else { prefix = string.Empty; localName = stringValue; } string ns = resolver.GetNamespace(prefix); if (ns == null) { throw FxTrace.Exception.AsError(new FormatException(SRCore.CouldNotResolveNamespacePrefix(prefix))); } return(XName.Get(localName, ns)); }