• 解决在使用client object model的时候报“object does not belong to a list”错误


    在查看别人代码的时候,发现了个有意思的问题,使用client object model将一个文件check in

    我使用的是如下语句获取file

    Microsoft.SharePoint.Client.File fileUploaded = context.Web.GetFileByServerRelativeUrl(docPathUrl);

    context.Load(fileUploaded);
    context.ExecuteQuery();

    if (fileUploaded.CheckOutType != CheckOutType.None)
    {
    fileUploaded.CheckIn("test", CheckinType.MajorCheckIn);
    context.ExecuteQuery();
    }

    在代码执行到红色部分时候就报错“object does not belong to a list”。

    第一反应是没找到文件所在的List,于是查看docPathUrl,发现是正确的url. 没有问题。继而在跟站点下面执行这段代码,发现运行正常,没有报错,经过一番波折后发现context在初始化的时候ClientContext context = new ClientContext(url)用的时候根站点的URL,而我的文档库在其中一个sub site上面,因为我的docPathUrl使用的是serverrelativeUrl,所以在获取fileUploaded的时候是能获取到的,但是在check in的时候就会报错。

    于是将ClientContext context = new ClientContext(url)中的url变为该文档库所在的sub site的url后,语句运行就没有问题了。

    结论:clientcontext初始化的时候URL要注意啊,尤其后面直接使用了context.web属性的时候。

  • 相关阅读:
    SQL(二)语法
    SQL(一)简介
    linux学习(六)文件基本属性
    Linux学习(五)远程登录
    Linux学习(四) 忘记密码解决方法
    怎样理解阻塞非阻塞与同步异步的区别?
    Python的lambda匿名函数
    Twisted源码分析系列01-reactor
    Python装饰器学习(九步入门)
    Python关键字yield的解释
  • 原文地址:https://www.cnblogs.com/cwyang/p/4971029.html
Copyright © 2020-2023  润新知