SharePoint Client-Side Object Model ClientContext.Load method
Today I was struggling with my first try at some SharePoint 2013 Client Side Object Model C# code, starting with the example I found at http://www.learningsharepoint.com/2010/07/22/get-all-users-and-groups-client-object-model-sharepoint-2010/.
As all of you may know, you need to reference at least two assemblies to get this going:
- Microsoft.SharePoint.Client.dll
- Microsoft.SharePoint.Client.Runtime.dll
Unfortunately at that point I was still inexperienced, and I forgot to add a reference to Microsoft.SharePoint.Client.Runtime.dll.
When I tried to compile the following code:
The compiler threw the following error message:
- 'Microsoft.SharePoint.Client.ClientContext' does not contain a definition for 'Load' and no extension method 'Load' accepting a first argument of type 'Microsoft.SharePoint.Client.ClientContext' could be found (are you missing a using directive or an assembly reference?
Luckily the compiler hinted to the possible fact that there was missing a assembly reference.
Finally, I added Microsoft.SharePoint.Client.Runtime.dll as well and the errors went away.
I found it quite confusing that I was able to use a class but not all available methods, assuming the example I took was right of course.
So I digged into the decompilation of both assemblies and this is what I found out:
- ClientContext inherits from ClientRuntimeContext
- ClientContext is defined in Microsoft.SharePoint.Client.dll
- ClientRuntimeContext is defined in Microsoft.SharePoint.Client.Runtime.dll
- ClientRuntimeContext defines the Load method:
Hopefully this piece of information is useful to some of you out there.
Reacties