![]() |
1
28
我认为你的问题在某种程度上已经包含了正确的答案。 为了确定是否加载了客户端对象属性,可以使用以下方法:
测验测试用例1:仅加载标量属性
测试用例2:仅加载复合特性
测试用例3:加载标量和复合财产
如何动态确定客户端对象属性是否已加载?自从 ClientObject.IsPropertyAvailable 和 ClientObject.IsObjectPropertyInstantiated 方法希望将属性名指定为字符串值,这可能会导致拼写错误,我通常倾向于以下 extension method :
用法
|
![]() |
2
1
Vadim Gremyachev提供的测试只涵盖了一半的场景,即使用ctx.Load的场景。但当使用ctx.LoadQuery时,结果会发生变化:
因此,一旦对集合调用了LoadQuery,就无法再查看该集合是否实际可用。 在这种情况下,唯一的方法是检测异常发生。 |
|
3
1
好吧,这变得越来越复杂,特别是在SharePoint Online中,即使没有抛出异常,Load和Execute方法的结果也可能不完整。然而,下面是我从这个线程和其他线程中收集到的内容,这些线程结合到LoadAndExecute方法中,可以是ClientContext类的子类扩展,也可以转换为静态扩展类。对于新的客户端对象,对象及其财产在一个操作中加载,但对每个属性分别检查结果。对于现有客户机对象,只有缺少的财产会加载到单独的操作中,这可能会不必要地消耗网络资源。因此,该方法不仅检查哪些财产未初始化,还尝试检索丢失的属性。此外,还有一个主题是通过重写ClientContext的Execute方法来避免被限制,但这里没有包括:
|
|
4
0
使用扩展的想法很好,但只适用于列表。扩展可以在“对象”和“标量”财产之间进行选择。我认为这样做会比扩展更好:
|
![]() |
Ali Haddani · 413有效载荷比500系统大。服务模型。当我在WCF sharepoint应用程序中增加maxReceivedMessage时,ServiceActivationException 2 年前 |
![]() |
Jakaja1 · SharePoint-如何阻止图片下载 3 年前 |