public static bool TryConvertToFileUri(object value, UriKind kind, out FileUri result) { if (value != null) { object baseObject = (value is PSObject) ? ((PSObject)value).BaseObject : value; try { if (baseObject is Uri) { result = FileUri.AsFileUri((Uri)value); if (kind == UriKind.Absolute) { if (!result.IsAbsoluteUri) { throw new UriFormatException("URI is not absolute."); } } if (kind == UriKind.Relative && !result.IsAbsoluteUri) { throw new UriFormatException("URI is not relative."); } } else if (TryConvertToString(value, out string uriString)) { result = new FileUri(uriString, kind); } else { result = null; return(false); } } catch { result = null; return(false); } } else { result = null; } return(true); }
public static bool TryConvertToFileUri(object value, out FileUri result) { return(TryConvertToFileUri(value, UriKind.RelativeOrAbsolute, out result)); }