判断是否是全路径Url:SPUrlUtility.IsUrlFull
作者:杨柳@水杉网络
基本信息
程序集
Microsoft.SharePoint.dll
命名空间
Microsoft.SharePoint.Utilities
类型
静态方法
介绍
SharePoint是一个Web应用平台,所以,SharePoint平台的绝大部分资源都可以使用Url来进行描述。对于外界提供的一个Url路径,有可能是全路径,也有可能是相对路径。因此在开发过程中我们需要很好地甄别。
方法
位于Microsoft.SharePoint.Utilities.SPUrlUtility类,具体描述如下:
//判断是否是全路径Url
public static bool IsUrlFull(string url)
{
Uri uri;
return Uri.TryCreate(url, UriKind.Absolute, out uri);
}
使用场景
在某些尽量需要全路径资源文件引用的情况下,可以使用此方法对资源文件路径进行校验,比如在SharePoint中,引入到页面的CSS资源文件路径,SharePoint就会做全路径的检测。
下面截取了Microsoft.SharePoint.WebControls.CssRegistrationRecord
类中使用此方法的方式:
//验证CSS引用地址是否是全路径,否则创造全路径CSS引用地址。
public string CanonicalCssReference
{
get
{
if (this.m_CanonicalRef == null)
{
SPContext current = SPContext.Current;
if (SPUrlUtility.IsUrlFull(this.CssReference))
{
this.m_CanonicalRef = this.CssReference;
}
else
{
try
{
this.m_CanonicalRef = CssLink.MakeCssUrl(current.Web, 0, this.CssReference, current.IsDesignTime);
}
catch (SPException)
{
return "";
}
}
}
return this.m_CanonicalRef;
}
}
测试代码
以下代码在SharePoint Powershell命令行工具中执行
#####
# 输出结果:False
#####
[Microsoft.SharePoint.Utilities.SPUrlUtility]::IsUrlFull("abc");
#####
# 输出结果:True
#####
[Microsoft.SharePoint.Utilities.SPUrlUtility]::IsUrlFull("http://abc");