调用静态方法以获取SharePoint 2010文档

时间:2015-06-30 01:29:15

标签: c# sharepoint sharepoint-2010

我正在尝试检索SharePoint 2010文档库中当前文档的URL,以便将其添加到SharePoint 2010工作流中的电子邮件中。

目前,我在Utilities.cs文件中有以下代码:

namespace WorkflowProject1.Workflow1
{
    public static class Utilities
    {
        public static string AbsoluteUrl(this SPFile File)
        {
            string EncodedUrl = File.Item[SPBuiltInFieldId.EncodedAbsUrl].ToString();
            string DecodedURL = SPEncode.UrlDecodeAsUrl(EncodedUrl);
            return DecodedURL;            

        }        

    }
}

在具有相同命名空间的工作流文件(Workflow1.cs)中,我尝试使用以下行调用上述方法:

Item.File.AbsoluteUrl();

当我尝试调用方法时,我得到“名称Item在当前上下文中不存在”。我错过了参考吗?有关如何检索DecodedURL值的任何建议,以便我可以在我的主工作流文件中使用它将非常感激。此外,大部分代码都是从另一篇文章中复制过来的,但我没有足够的意见来评论原帖。

1 个答案:

答案 0 :(得分:0)

由于(基于此方法)您已经检索到正确的SPFile对象,因此您应该可以引用url属性。

请参阅:https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spfile.url(v=office.14).aspx

如果您想要绝对URL,可以使用SPFile上的字段EncodedAbsUrl(这也适用于SPListItems):

用法(假设您的SPFile对象被称为file):

string absoluteUrl = (string) file.Item[SPBuiltInFieldId.EncodedAbsUrl];

文档:https://msdn.microsoft.com/EN-US/LIBRary/microsoft.sharepoint.spbuiltinfieldid.encodedabsurl.aspx